從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方法就順便再說一下它的其它功能, 如替換元素, 追加元素等操作吧!
splice函數- 取代元素
["George", "John", "James", "Adrew", "Martin"]想要將陣列元素James 替換為Tom
#
arr.splice( arr.indexOf( 'James' ), 1, 'Tom' );取代後的陣列結構是這個樣子的:
#
["George", "John", "Tom", "Adrew", "Martin"]
splice函數- 取代並追加元素
#
["George", "John", "Tom", "Adrew", "Martin"]想要將陣列元素Tom 替換為Judy 並追加Linda 和Alisa
arr.splice( arr.indexOf( 'Tom' ), 1, 'Judy', 'Linda', 'Alisa' );取代及追加後的陣列結構是這個樣子的:
["George", "John", "Judy", "Linda", "Alisa", "Adrew", "Martin"]
splice函數- 追加元素
["George", "John", "Judy", "Linda", "Alisa", "Adrew", "Martin"]比如說要在Linda 和Alisa 之間追加Bill 和Blake
arr.splice( arr.indexOf( 'Linda' ) + 1, 0, 'Bill', 'Blake' );追加後的陣列結構是下面這個樣子的:
#
["George", "John", "Judy", "Linda", "Bill", "Blake", "Alisa", "Adrew", "Martin"]
arr .indexOf( 'Linda' ) + 1 就是在陣列元素Linda 之後了
刪除陣列中第一個元素
#
arr.shift();刪除後的陣列是這個樣子的:
["John", "Judy", "Linda", "Bill", "Blake", "Alisa", "Adrew", "Martin"]
刪除陣列中最後一個元素
arr.pop();刪除後的陣列是這個樣子的:
["John", "Judy", "Linda", "Bill", "Blake", "Alisa", "Adrew"]
以上是JavaScript陣列刪除特定元素方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!