按照各方法的定義,以下迭代方法應該都能對數組中的每一項運行傳入函數,但是://對數組進行迭代//for方法let b=[1,2,3]for(let i=0,len=b.length;i<len;i++){
b[i]*=2
}console.log(b) //[2,4,6]//forEach方法...
b.forEach(function(i,j){
b[j]*=2
})
...//[2,4,6]//for in方法...
let c=Object.keys(b)for(let i in c){
b[i]*=2
}
...//[2,4,6]//for of方法...
for(let i of b){
i*=2
}
...//[1,2,3]可以看到for of不會修改原數組并返回,參考諸多文檔發現都只提到遍歷添加事件,目前只能在for of上使用額外方法才能實現數組遍歷修改.最后希望各位答主能給出實現原理角度的提示分析,謝謝!
為什么for of方法不能遍歷修改原數組?
叮當貓咪
2018-08-10 12:02:13