在之前的文章《JS數(shù)組學(xué)習(xí)之怎么去除頭部或尾部元素》中,我們介紹了刪除數(shù)組開頭或者末尾元素的方法。下面我們繼續(xù)JavaScript數(shù)組的學(xué)習(xí)和練習(xí),來看看如何根據(jù)數(shù)組下標刪除任意元素,感興趣的朋友可以學(xué)習(xí)了解一下~
我們都知道數(shù)組中的每個元素都有一個序號,這個序號從0開始,被稱為下標(Index)。根據(jù)這個數(shù)組下標,我們可以使用 數(shù)組名[下標]
的形式來訪問指定下標的元素。
訪問到指定元素后,就可以利用 delete
運算符 來刪除該元素,但數(shù)組長度不會發(fā)生改變;刪除后的該元素會變?yōu)榭瘴辉兀?/p>
var arr=new Array("香蕉","蘋果","梨子","橙子","橘子","榴蓮"); console.log(arr); delete arr[1]; //刪除下標為1的元素(第二個元素) console.log(arr);
空位元素可以讀寫,length 屬性不排斥空位,空元素位返回值為 undefined
console.log(arr[1]);
說明:空元素與元素的值為 undefined 是兩個不同的概念,即使空元素的返回值也是 undefined。JavaScript 在初始化數(shù)組時,只有真正存儲有值得元素才可以分配內(nèi)存。
利用delete運算符一次只能刪除一個數(shù)組元素,且因為不改變數(shù)組長度,我們就無法通過length屬性來觀察這個數(shù)組的變化了。那么如果想要在指定下標位置刪除一個或多個元素,且是真正的刪除這些元素,數(shù)組長度要有改變,這要怎么做呢?
可以使用 splice() 方法。之前就說過了splice() 是一個強大的方法,我們已經(jīng)了解了怎么使用它來插入元素,這次來了解一下怎么使用splice()來在指定下標位置刪除一個或多個元素。
刪除元素的語法:
array.splice(index,howmany)
-
第1個參數(shù)
index
可以指定起始下標位置(即開始刪除元素的位置); -
第2個參數(shù)
howmany
指定應(yīng)該刪除的元素數(shù)目(即需要刪除的一個或多個元素)。
我們通過下面的例子來具體看看:
var arr= [1,2,3,4,5]; console.log(arr); arr.splice(1,2); console.log(arr);
可以看出:使用arr.splice(1,2)
從下標1的位置(數(shù)組第2個元素)開始刪除2個元素,也就是刪除了arr[1]
和arr[2]
,因此輸出結(jié)果為:
利用splice() 方法我們也可以實現(xiàn)在數(shù)組開頭和末尾刪除元素的操作:
-
如果想要在數(shù)組開頭刪除元素,就設(shè)置該方法第1個參數(shù)index的值為0即可
var arr= [1,2,3,4,5]; console.log(arr); arr.splice(0,2); console.log(arr);
-
如果想要在數(shù)組末尾刪除元素,就設(shè)置該方法第1個參數(shù)index的值為負數(shù),那么就會按絕對值從數(shù)組右側(cè)開始向左側(cè)定位;且第2個參數(shù) howmany的值要 等于 index的值。
var arr= [1,2,3,4,5]; console.log(arr); //從倒數(shù)第二個元素開始,截取兩個元素 arr.splice(-2,2); console.log(arr);
好了,就說到這里了,有需要的可以看:javascript高級教程