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]