關於陣列中刪除元素遇到的問題

2021-09-26 03:12:01 字數 935 閱讀 7831

最開始的想法是呼叫陣列的foreach()方法,根據條件找到的index索引刪除該項

問題:當刪除乙個元素時,不會發生意外,就可以這樣操作,但是當刪除陣列中多個元素時,這樣就會出錯了,會出現有些項刪不了的情況(還有可能報錯)

原因:我們的需求是將狀態為status = 0 的項刪除掉:

let lists =[,

,,,]

;lists.

foreach

((item,index)

=>})

console.

log(lists)

;

這樣顯然不行,因為每當刪除一項,陣列對應索引的值就會改變

結果如下:

過程:當index=0,時 進入刪除,然後進入下一次遍歷

index=1,而此時index=1 的項是

那麼也就是說,每當我們有需要刪除的項挨在一起時,那麼刪除項的下一項會被忽略遍歷,因為陣列本身索引對應的內容改變了。

原因:這是在對本身陣列做操作

lists.

foreach

((item,index)

=>

})

想法是:希望每刪除一項,就讓索引回到刪除項,重新遍歷

結果是: 還是和之前一樣,並沒有什麼用(發現了好像平時我們不怎麼注意的一件事,foreach方法的index我們操作是無效的)

for

(let i=

0;i)}

然後結果就對了。

小結:雖然這是乙個小問題,也算是for迴圈陣列和foreach()方法的不同之處了。碼住。以後不犯這樣的錯了

javascript中陣列元素刪除

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

php陣列中刪除元素

之前如果要在某個陣列中刪除乙個元素,我是直接用的unset,也不管unset之後會發生什麼。但今天看到的東西卻讓我大吃一驚 arr array aaaa bbbb cccc dddd unset arr 1 print r arr print r arr 之後,結果卻不是那樣的,最終結果是 arra...

php陣列中刪除元素

之前如果要在某個陣列中刪除乙個元素,我是直接用的unset,也不管unset之後會發生什麼。但今天看到的東西卻讓我大吃一驚 arr array a b c d unset arr 1 print r arr print r arr 之後,結果卻不是那樣的,最終結果是 array 0 a 2 c 3 ...