JS 移除陣列元素錯誤案例 |用각각 접합

2738 단어 webdevjavascript

情況



移除不符合條件的陣列元素,例如移除'e'的元素

let list = ['a', 'b', 'c', 'e']

list.forEach((item, index, arr) => {
    if(item === 'e') {
        arr.splice(index, 1)
    }
})


(splice方法第一個參數是欲刪除元素的位置,第二個是欲刪除幾個元素)

錯誤原因



使用map或forEach等迴圈相關的方法時,不要在迴圈內移除或增加陣列長度,否則陣列的指向會錯誤.

解決方法



사용하는 필터()를 사용하여 합체

let list = ['a', 'b', 'c', 'e']

let filterList = list.filter(item => {
    return item !== 'e'
})

좋은 웹페이지 즐겨찾기