【发布时间】:2022-01-14 04:19:55
【问题描述】:
我想最终得到以下结果。
[{x: '10', y: '5'}, {x: '8', y: '4'}]
我不明白为什么下面代码得到的结果是
[{x: '8', y: '4'}, {x: '8', y: '4'}]
var test =[["10", "5"],["8","4"]];
var series = {};
var sample = [];
for (var i = 0 ; i < test.length ; i++){
series.x = test[i][0];
series.y = test[i][1];
console.log(i);
console.log(series);
sample.push(series);
};
console.log(sample);
你能给我一些建议吗?
【问题讨论】:
-
您需要在循环的每个循环中创建一个新对象。您当前正在做的是在每个循环中更新相同的对象。您当前的结果是一个对象引用数组,全部指向同一个对象。
-
在循环中:
let series = { x: test[i][0], y: test[i][1] }; -
知道了,对不起,我犯了一个粗心的错误。谢谢!!
-
另外,考虑 1-liner:
let sample = test.map(a => ({ x:a[0], y:a[1] })); -
这应该可以
let sample = test.map(([x,y])) => ({ x, y }));
标签: javascript arrays