關於javascript中陣列元素刪除問題的討論 (轉)

worldblog發表於2008-01-22
關於javascript中陣列元素刪除問題的討論 (轉)[@more@]

var arr=['a','b','c'];
若要刪除其中的'b',有兩種方法:
 
1.delete方法:delete arr[1]
這種方式陣列長度不變,此時arr[1]變為undefined了,但是也有好處原來陣列的也保持不變,此時要遍歷陣列元素可以才用
for(index in arr)
  document.write('arr['+index+']='+arr[index]);
這種遍歷方式跳過其中undefined的元素

* 該方式IE4.o以後都支援了

2.陣列splice方法:arr.splice(1,1);
這種方式陣列長度相應改變,但是原來的陣列索引也相應改變
splice引數中第一個1,是刪除的起始索引(從0算起),在此是陣列第二個元素
第二個1,是刪除元素的個數,在此只刪除一個元素,即'b';
此時遍歷陣列元素可以用普通遍歷陣列的方式,比如for,因為刪除的元素在
陣列中並不保留

* 該方法.5以後才支援

值得一提的是splice方法在刪除陣列元素的同時,還可以新增入陣列元素
比如arr.splice(1,1,'d','e'),d,e兩個元素就被加入陣列arr了
結果陣列變成arr:'a','d','e','c' 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-998137/,如需轉載,請註明出處,否則將追究法律責任。

相關文章