從js陣列中刪除指定元素是我們每個人都遇到的問題,網路上這方面的資料也很多,但有的時間過於久遠,有的內容不夠全面,所以自己來整理下,這篇文章主要來為大家總結介紹了關於JavaScrip數組刪除特定元素的多種方法,需要的朋友可以參考下。
前言
可能一說刪除陣列特定元素你估計不只一種方法可以實現,那麼下面且來看看我總結的這幾種方法,可能會對你有幫助!話不多說了,來一起看看詳細的介紹吧。
來源陣列
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方法原型定義, 中文意思呢是:剪接, 其參數的意義是:
start: 起點索引值
#deleteCount: 要刪除的元素個數
items: 刪除後替換/追加的元素
參數不加時就表示刪除元素, 並且也要結合 deleteCount 的參數值
如果 deleteCount 為 1, items 參數位置給予一個參數值, 則表示替換
若deleteCount 為1, items 參數位置給多於一個的參數值, 則表示替換及追加元素
arr.splice( arr.indexOf( null ), 1 );
["George", "John", "James", "Adrew", "Martin"]
splice函數 - 取代元素
##
["George", "John", "James", "Adrew", "Martin"]
arr.splice( arr.indexOf( 'James' ), 1, 'Tom' );
["George", "John", "Tom", "Adrew", "Martin"]
現在目前陣列結構是這樣的:
["George", "John", "Tom", "Adrew", "Martin"]
#
arr.splice( arr.indexOf( 'Tom' ), 1, 'Judy', 'Linda', 'Alisa' );
["George", "John", "Judy", "Linda", "Alisa", "Adrew", "Martin"]
追加元素你可以選擇任意位置這取決於你的特定需求, 關鍵是在於start 的取值索引位置而已!目前陣列結構如下所示:
["George", "John", "Judy", "Linda", "Alisa", "Adrew", "Martin"]
arr.splice( arr.indexOf( 'Linda' ) + 1, 0, 'Bill', 'Blake' );
["George", "John", "Judy", "Linda", "Bill", "Blake", "Alisa", "Adrew", "Martin"]
就是在陣列元素Linda 之後了
刪除數組中第一個元素
arr.shift();
["John", "Judy", "Linda", "Bill", "Blake", "Alisa", "Adrew", "Martin"]
刪除陣列中最後一個元素
arr.pop();
["John", "Judy", "Linda", "Bill", "Blake", "Alisa", "Adrew"]
相關推薦:
以上是JavaScrip數組刪除特定元素的幾種方法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!