我的目标是创建一个这样的数组:推对象转换成数组作为预期不起作用
[{"str":"a","number":1},{"str":"a","number":2},{"str":"b","number":1},{"str":"b","number":2}]
所以我写了这个JavaScript
abc = ["a","b"]
num = [1,2]
arr = []
a = {}
for (var i in abc)
{
str = abc[i]
a.str = str;
for(var x in num)
{
number = num[x]
a.number = number
console.log(a)
arr.push(a)
}
}
控制台日志看起来不错,但数组看起来像这样:
[{"str":"b","number":2},{"str":"b","number":2},{"str":"b","number":2},{"str":"b","number":2}]
任何人都可以解释这一点吗?
这里只有一个涉及对象;您的代码会更新该对象并将其推入阵列中多次。如果您需要不同的对象,则必须在每次迭代时为“a”创建一个新值。另外,用'var'或'let'声明你的变量。 – Pointy