js刪除數組中某幾項的方法總結

1:js中的splice方法
splice(index,len,[item]) 注釋:該方法會改變原始數組 。
splice有3個參數,它也可以用來替換/刪除/添加數組內某一個或者幾個值
index:數組開始下標 len: 替換/刪除的長度 item:替換的值,刪除操作的話 item為空
如:arr = ['a','b','c','d']
刪除 ---- item不設置
arr.splice(1,1) //['a','c','d'] 刪除起始下標為1,長度為1的一個值,len設置的1 , 如果為0,則數組不變
arr.splice(1,2) //['a','d'] 刪除起始下標為1 , 長度為2的一個值,len設置的2
替換 ---- item為替換的值
arr.splice(1,1,'ttt') //['a','ttt','c','d'] 替換起始下標為1,長度為1的一個值為‘ttt',len設置的1
arr.splice(1,2,'ttt') //['a','ttt','d'] 替換起始下標為1,長度為2的兩個值為‘ttt',len設置的1
【js刪除數組中某幾項的方法總結】添加 ---- len設置為0,item為添加的值
arr.splice(1,0,'ttt') //['a','ttt','b','c','d'] 表示在下標為1處添加一項‘ttt'
看來還是splice最方便啦
2:delete delete刪除掉數組中的元素后,會把該下標出的值置為undefined,數組的長度不會變
如:delete arr[1] //['a', ,'c','d'] 中間出現兩個逗號 , 數組長度不變,有一項為undefined
js 刪除數組幾種方法
var arr=['a','b','c'];
若要刪除其中的'b',有兩種方法:
1.delete方法:delete arr[1]
這種方式數組長度不變,此時arr[1]變為undefined了,但是也有好處原來數組的索引也保持不變,此時要遍歷數組元素可以才用

js刪除數組中某幾項的方法總結

這種遍歷方式跳過其中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屬性并不改變兩種刪除元素,數組長度也改變的方法.
/*
* 方法:Array.remove(dx)
* 功能:刪除數組元素.
* 參數:dx刪除元素的下標.
* 返回:在原數組上修改數組
*/
//經常用的是通過遍歷,重構數組.
js刪除數組中某幾項的方法總結

我們知道,在IE5或更低的版本中,JavaScript的Array(數組)對象并未提供現成的刪除數組元素的方法 。在IE5.5 的版本中,雖然有splice方法,但是并不是刪除某一項(或幾項),而僅僅是將某一項(或幾項)的值清除 , 也就是說該項仍然存在 , 數組的長度并沒有改變 。
事實上,我們可以自己為數組增加一個刪除方法(注意,這里指的是將數組的某一項真正的從數組成員中移除) 。或許你會想到用循環來為數組重新賦值,這樣做當然可以,但效率很低 。
下面我們介紹利用Array對象的兩個方法slice、concat來自定義刪除數組的方法 。
具體代碼如下 , 請注意里面的注釋 。
js刪除數組中某幾項的方法總結

相關經驗推薦