最開始的想法是呼叫陣列的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 ...