foreach循环中删除元素

发布时间:2019-01-03 作者:一点通


当我们在forEach的循环中删掉一个元素,会导致所有剩下的元素上移一个位置

var words = ["one", "two", "three", "four"];
words.forEach(function(word){
    console.log(word);
    if(word === "two"){
        words.shift();
    }
});

// 输出
// one
// two
// four

当循环到"two"的时候,原数组就变成了["two", "three", "four"],而此刻"three"就跑到了"two"的位置上,变成了当前被循环的元素,所以下一个元素就是"four"