我很愿意解释为什么这个函数的结果与我的期望不一致。
const numbers = [ 1, 2 ]
const objects = [{f: 'a'}, {f: 'b'}]
async function(domain) {
let matrix = []
objects.forEach((object) => {
numbers.forEach((number) => {
object.number = number
matrix.push(object)
})
})
return matrix
}()
实际结果
一旦承诺被解决,返回结果如下:
[
{ f: 'a', number: 2 },
{ f: 'a', number: 2 },
{ f: 'b', number: 2 },
{ f: 'b', number: 2 }
]
预期结果
但是,我预期的结果是它将返回:
[
{ f: 'a', number: 1 },
{ f: 'a', number: 2 },
{ f: 'b', number: 1 },
{ f: 'b', number: 2 }
]
有一件事情让我感到困惑,就是如果在我推送之前使用console.log
记录对象的值,它会记录下我预期结果中的每个对象。