为什么for of方法不能遍历修改原数组?

按照各方法的定义,以下迭代方法应该都能对数组中的每一项运行传入函数,但是:

//对数组进行迭代//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上使用额外方法才能实现数组遍历修改.最后希望各位答主能给出实现原理角度的提示分析,谢谢!


叮当猫咪
浏览 2240回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go
JavaScript