js刪除陣列元素、清空陣列的簡單方法(必看)
一、清空陣列
1 2 3 |
|
二、刪除陣列元素
1 2 3 |
|
三,js 刪除陣列幾種方法
var arr=['a','b','c'];
若要刪除其中的'b',有兩種方法:
1,delete方法:delete arr[1]
這種方式陣列長度不變,此時arr[1]變為undefined了,但是也有好處原來陣列的索引也保持不變,此時要遍歷陣列元素可以才用
1 2 3 4 |
|
這種遍歷方式跳過其中undefined的元素
* 該方式IE4.o以後都支援了
2,陣列物件splice方法:arr.splice(1,1);
這種方式陣列長度相應改變,但是原來的陣列索引也相應改變
splice引數中第一個1,是刪除的起始索引(從0算起),在此是陣列第二個元素
第二個1,是刪除元素的個數,在此只刪除一個元素,即'b';
此時遍歷陣列元素可以用普通遍歷陣列的方式,比如for,因為刪除的元素在
陣列中並不保留
* 該方法IE5.5以後才支援
值得一提的是splice方法在刪除陣列元素的同時,還可以新增入陣列元素
比如arr.splice(1,1,'d','e'),d,e兩個元素就被加入陣列arr了
結果陣列變成arr:'a','d','e','c'
另外,JavaScript通過設定陣列的length屬性來截斷陣列,是惟一一種縮短陣列長度的方法。
如果使用delete運算子來刪除陣列中元素,雖然那個元素變成未定義的,但是陣列的length屬性並不改變兩種刪除元素,陣列長度也改變的方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
例2,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
在IE5或更低的版本中,JavaScript的Array(陣列)物件並未提供現成的刪除陣列元素的方法。在IE5.5+的版本中,雖然有splice方法,但是並不是刪除某一項(或幾項),而僅僅是將某一項(或幾項)的值清除,也就是說該項仍然存在,陣列的長度並沒有改變。
事實上,可以自己為陣列增加一個刪除方法(注意,這裡指的是將陣列的某一項真正的從陣列成員中移除)。或許,會想到用迴圈來為陣列重新賦值,這樣做當然可以,但效率很低。
以下介紹利用Array物件的兩個方法slice、concat來自定義刪除陣列的方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
以上程式碼,僅靈活運用了Array物件的兩個方法,便實現了基本要求,不錯。
以上這篇js刪除陣列元素、清空陣列的簡單方法(必看)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援指令碼之家。