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]