foreach之前和之后的Console.log

时间:2019-09-10 16:00:35

标签: javascript arrays foreach console.log

当我在用foreach更改数组前后进行console.log记录时,对于简单的数字数组,它可以按预期工作,但是对于对象数组,foreach之前的console.log在更改后记录数组,不像数字数组。请您能帮我了解造成这种现象的原因吗?

const simplearray = [1, 2, 3]
console.log(simplearray) // returns [1,2,3]
simplearray.forEach((d, i) => simplearray[i] = d + 10)
console.log(simplearray) // returns [11,12,13]

const objarray = [{
  n: 1
}, {
  n: 2
}, {
  n: 3
}]
console.log(objarray) // returns [{"n":11},{"n":12},{"n":13}]
objarray.forEach(d => d.n = d.n + 10)
console.log(objarray) // returns [{"n":11},{"n":12},{"n":13}]

更新:我可以确认,按照链接到重复问题中的建议,使用JSON.Stringify()记录对象,可以正确记录对象的前后。

0 个答案:

没有答案