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

时间:2015-05-10 04:37:59

标签: javascript json

我有以下数组对象

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 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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);