var mm=[1,2,3,4,5,6,7,8];数组
var nn=[2,3,4,5,6,7];spa
//被删除数组写在外层ci
nn.forEach(function(item,index){it
mm.forEach(function(citem,cindex){io
if(item==citem){console
mm.splice(cindex,1)function
}循环
})数据
});co
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]