在js中對陣列的處理是司空見慣的,現在想要刪除陣列中choiceflag為1的元素,可以這樣做。
for(var i=0;i<$scope.macco.items.length;i++)
}
這裡的神奇之處就是合理使用splice函式,下面是對splice的介紹:
splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。
注釋:該方法會改變原始陣列。
引數描述
index
必需。整數,規定新增/刪除專案的位置,使用負數可從陣列結尾處規定位置。
howmany
必需。要刪除的專案數量。如果設定為 0,則不會刪除專案。
item1, ..., itemx
可選。向陣列新增的新專案。
型別描述
array
包含被刪除專案的新陣列,如果有的話。
splice() 方法可刪除從 index 處開始的零個或多個元素,並且用引數列表中宣告的乙個或多個值來替換那些被刪除的元素。
如果從 arrayobject 中刪除了元素,則返回的是含有被刪除的元素的陣列。
可見每次對陣列進行操作(刪除乙個元素)之後,陣列的長度都會變化,但是i是記錄最初陣列的下標值,所以要從迴圈中刪除choiceflag為1 的元素,必須每次刪完之後要把i的值減去1,這樣當陣列的長度變化時,下次刪除的元素也不會錯。也就是
items.splice(i--, 1)。
js中splice和slice的區別
arrayobject.slice start,end 返回值返回乙個新的陣列,包含從 start 到 end 不包括該元素 的 arrayobject 中的元素。說明請注意,該方法並不會修改陣列,而是返回乙個子陣列。如果想刪除陣列中的一段元素,應該使用方法 array.splice var arr...
JS中slice和splice的區別
字串和陣列的操作雖然經常用,但是時間長了,細緻的部分忘記了,今天特地翻看了一下之前學習時候的筆記。首先slice和splice猛的一看很相似,但是實際上用法差異性很大。slice 引數一,引數二 引數一 開始擷取的下標位置 引數二 結束擷取下標位置,但是不會擷取到該位置上的值 var newarra...
JS中delete和splice的區別
1.splice splice index,num,element index 所要刪除陣列元素開始的索引 num 刪除個數 element 需要在刪除元素的前面插入的元素例 array jj 56416 88 array.splice 0 2,哈哈 從索引為0的開始刪除兩個,即索引為0和1的。再在...