來聊一聊JavaScrip陣列刪除特定元素

2021-09-16 12:36:01 字數 3091 閱讀 2299

說到刪除陣列特定元素你可能不止一種方法可以實現, 下面且來看看我總結的這幾種方法,可能會對你有所幫助!

var arr = ["george", "john", "thomas", "james", "adrew", "martin"];
什麼是偽刪除呢? 就是說將陣列元素值設定為null;

arr[ arr.indexof( 'thomas' ) ] = null;
刪除後的陣列是這個樣子的:

["george", "john", null, "james", "adrew", "martin"]
不過要注意, 這意味著陣列array也就是變數arr的長度保持不變

是什麼是完全刪除呢? 這個問題你可能從字面上也能想得到就是真正的刪除陣列array的元素值, 並且會改變陣列的長度, 可以通過內建陣列物件array的splice方法來實現這個需求!說到splice這個方法就要說一說它的具體引數了:

array.prototype.splice = function(start,deletecount,items) {};
上面是內建物件array的splice方法原型定義, 中文意思呢是:剪接, 其引數的意義是:

通過splice方法刪除上面偽刪除留下的元素值null

arr.splice( arr.indexof( null ), 1 );
刪除後的陣列是這個樣子的:

["george", "john", "james", "adrew", "martin"]
既然說到了splice方法就順便再說一下它的其它功能, 如替換元素,追加元素等操作吧!

現在陣列結構是這樣的:

["george", "john", "james", "adrew", "martin"]
想要將陣列元素james替換為tom

arr.splice( arr.indexof( 'james' ), 1, 'tom' );
替換後的陣列結構是這個樣子的:

["george", "john", "tom", "adrew", "martin"]
現在當前陣列結構是這樣的:

["george", "john", "tom", "adrew", "martin"]
想要將陣列元素tom替換為judy並追加lindaalisa

arr.splice( arr.indexof( 'tom' ), 1, 'judy', 'linda', 'alisa' );
替換及追加後的陣列結構是這個樣子的:

["george", "john", "judy", "linda", "alisa", "adrew", "martin"]
追加元素你可以選擇任意位置這取決於你的具體需求, 關鍵是在於start的取值索引位置而已!當前陣列結構如下所示:

["george", "john", "judy", "linda", "alisa", "adrew", "martin"]
比如說要在lindaalisa之間追加billblake

arr.splice( arr.indexof( 'linda' ) + 1, 0, 'bill', 'blake' );
追加後的陣列結構是下面這個樣子的:

["george", "john", "judy", "linda", "bill", "blake", "alisa", "adrew", "martin"]
以上說的是刪除陣列中特定的元素, 那刪除第乙個元素和最後乙個元素那實現在是太簡單了, 這裡簡單提一下就是了

arr.shift();
刪除後的陣列是這個樣子的:

["john", "judy", "linda", "bill", "blake", "alisa", "adrew", "martin"]
arr.pop();
刪除後的陣列是這個樣子的:

["john", "judy", "linda", "bill", "blake", "alisa", "adrew"]
希望本文對你的工作和學習有所幫助

如果覺得還不錯並且也長知識了, 怎麼感謝我呢? 媽呀! 點讚啊!

good luck! from warnerwu at 2017.09.06 am

聊一聊小甜餅

cookies程式設計 cookie是儲存在客戶端的小文字,儲存的位置分為兩種 cookie可能儲存在客戶端瀏覽器的所佔記憶體中,關閉瀏覽器後,cookies就不再存在。cookie也可能儲存在客戶pc機的硬碟上,設定有效時間,超過有效時間後失效。cookie的常見應用 簡化登入 很多 在登入時,可...

聊一聊動態規劃

一 問題 看乙個經常被引用的問題 例子1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 例子2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 問你例子1是多少時,你乙個個算後,結果是20 接著問你例子2時,你會馬上說出21,為什...

聊一聊元資料

這個話題來自我的msn space。這是原文 元資料 metadata 這個詞現在到處氾濫。其實我對元資料充其量只能說有自己的理解而已,並不能確信這個理解是正確的。我認為,資料結構分為三個層次 uml可是四層哦 例項層 直接描述特異化的資料場景 元資料層 描述例項的結構的一組資料 元資料的元資料層 ...