当我在用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()记录对象,可以正确记录对象的前后。