我有一个forEach((函数,每次迭代都会将数组增加一。
问题是,每次我将number
变量打印到浏览器控制台时,它都会显示它的最后状态,而不是当前状态。这是矛盾还是我做错了什么?
控制台输出
let array =
[
{
"id":1,
},
{
"id":2,
},
{
"id":3,
}
]
let number = [0]
array.forEach(() => {
number[0] += 1
console.log(number)
})
您在末尾看到的是数组引用,以及它的最后一个状态(后forEach
(。运行后,它实际上包含一个值为3
的变量。
尝试记录值和而不是引用;状态";值的。
let array =
[
{
"id":1,
},
{
"id":2,
},
{
"id":3,
}
]
let number = [0]
array.forEach(() => {
number[0] += 1
console.log(number[0]) // <--- this is the diff
})