数组循环删除另一个数组的内容!!注意事项

var mm=[1,2,3,4,5,6,7,8];

var nn=[2,3,4,5,6,7];

//被删除数组写在外层

nn.forEach(function(item,index){

    mm.forEach(function(citem,cindex){

        if(item==citem){

            mm.splice(cindex,1)

        }

    })

});

console.log(mm);===========》 [1, 8](正确值)

=====错误写法(被删除项写在内层)========================

mm.forEach(function(item,index){

    nn.forEach(function(citem,cindex){

        if(item==citem){

            mm.splice(index,1)

        }

    })

});

因为数组的长度被改变了,外层循环的index值没变导致的有些数据没有循环到

console.log(mm);========》错误结果[1, 3, 5, 7, 8]

猜你喜欢

转载自my.oschina.net/u/3356110/blog/1817099
今日推荐