将对象数组转换为常规JavaScript对象

5
我有以下数组对象:
var stats = [
    [0, 200,400], [100, 300,900],[220, 400,1000],[300, 500,1500],[400, 800,1700],[600, 1200,1800],[800, 1600,3000]
];

我想知道如何将其转换为以下JavaScript对象。
var stats = [
    {x:0, y:200,k:400}, {x:100, y:300,k:900},{x:220, y:400,k:1000},{x:300, y:500,k:1500},{x:400, y:800,k:1700},{x:600, y:1200,k:1800},{x:800, y:1600,k:3000}
];

2个回答

9

Array.prototype.map 就是你需要的:

stats = stats.map(function(x) {
    return { x: x[0], y: x[1], k: x[2] };
});

您所描述的期望输出不是JSON格式,而是普通的JavaScript对象;如果它是JSON格式,键名将会用引号括起来。您可以使用JSON.stringify将JavaScript对象转换为JSON格式。

4

您可以使用map()函数

var stats = [
    [0, 200,400], [100, 300,900],[220, 400,1000],[300, 500,1500],[400, 800,1700],[600, 1200,1800],[800, 1600,3000]
];

stats = stats.map(function(el) {
  return {
    x: el[0],
    y: el[1], 
    k: el[2]
  };
}); 

console.log(stats);

非常感谢jdphenix,你的回答也是正确的,我已经点赞了。由于Ethan先回答了,我选择了他的回答。 - casillas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接