请问这两层循环的代码为何在node与chrome浏览器输出结果不一样
发布于 8 年前 作者 shuaishenk 3177 次预览 最后一次回复是 8 年前 来自 问答
let arr= [{value:1},{value:2}] let arr1 = [6,7] for(let [k,v] of arr1.entries()){ for(let [_k,_v] of arr.entries()){ arr[_k].value =v ; console.log(arr); } }
node 8.5输出
[ { value: 6 }, { value: 2 } ]
[ { value: 6 }, { value: 6 } ]
[ { value: 7 }, { value: 6 } ]
[ { value: 7 }, { value: 7 } ]
chrome控制台输出 (chrome版本 60.0.3112.113)
2 回复
chrome控制台的console.log对对象是延迟求值的(而且还是异步的),你继续修改数组的话,重新点开它还会变成新的值
@dislido 多谢,确实是