情況
移除不符合條件的陣列元素,例如移除’e’的元素
let list = ['a', 'b', 'c', 'e']
list.forEach((item, index, arr) => {
if(item === 'e') {
arr.splice(index, 1)
}
})
(splice方法第一個參數是欲刪除元素的位置,第二個是欲刪除幾個元素)
錯誤原因
使用map或forEach等迴圈相關的方法時,不要在迴圈內移除或增加陣列長度,否則陣列的指向會錯誤。
解決方法
應使用filter()篩選符合的元素
let list = ['a', 'b', 'c', 'e']
let filterList = list.filter(item => {
return item !== 'e'
})
Top comments (0)