陣列迴圈刪除資料時,splice使用注意

2022-08-11 19:33:22 字數 626 閱讀 2112

當在迴圈陣列中,刪掉某個元素的時候,不要使用splice方法。

因為splice會使原陣列發生變化,而此時陣列還處在迴圈中,所以會出現問題。

例子:有個陣列  formdata ,需求:刪除formdata的itemlist中,queid === 『001』的一項。

我最開始使用的是splice方法,但是報錯了:

for(let i = 0; i < this.formdata.itemlist.length; i++) 

}

遇到有需要迴圈陣列來刪除陣列資料的情況,這樣做:

let formarr =

for(let i = 0; i < this.formdata.itemlist.length; i++) )

}}

最後得到的formarr 就是刪掉那個資料的陣列

解釋 formarr.push()

這裡是的意思是將item複製了乙份,傳給formarr,因為之後formarr可能會對item有所操作,如果是直接push item的話,跟之前的item的引用位址是一樣的,可能會出現問題。嗯。

注意,這個複製是item只有一層的時候。如果不止一層,需要用clonedeep

splice 陣列刪除方法

splice增加資料到陣列 arr.splice 2,0,item 這句話中第乙個2指的是從arr 2 開始,0指刪除0個資料,item指插入資料為item arr.splice 2,1 這句話中第乙個2指的是從arr 2 開始,1指刪除1個資料 元素描述 index 必需。規定從何處新增 刪除元素...

迴圈下splice刪除多個陣列索引項

我的需求是陣列選擇刪除掉相應資料,後台需要我返回字串連線的資料,替換修改。el checkbox group v model checklist change handlecheckedcitieschange el checkbox label index v for item,index in ...

splice 陣列刪除增加方法

splice增加資料到陣列 arr.splice 2,0,item 這句話中第乙個2指的是從arr 2 開始,0指刪除0個資料,item指插入資料為item arr.splice 2,1 這句話中第乙個2指的是從arr 2 開始,1指刪除1個資料 元素描述 index 必需。規定從何處新增 刪除元素...