如何将此JavaScript数组对象附加到另一个JavaScript数组对象?

时间:2014-04-04 13:32:36

标签: javascript javascript-objects

我有这个Javascript json数组对象;

var dataJson=[ [{v:1},{v:90}],[{"v":2},{"v":"33.7000"}] ];

我想将此数组对象dataJson附加到另一个对象,使其看起来像这样;

var chartObject = {"cols": [
    {id: "t", label: "t_label", type: "number"},
    {id: "s", label: "s_label", type: "number"} 
], "rows": [
    {c: 
        [{v:1},{v:90}] //dataJson[0]
    },
    {c: 
        [{"v":2},{"v":"33.7000"}] ////dataJson[1]
    }
]};

如何使用for循环将dataJson元素插入chartObject?对不起,我对javascript很新,甚至无法生成一些启动代码。非常感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

试试这个:

...
  ], "rows": dataJson.map(function(row) {return {c:row};})
};

答案 1 :(得分:1)

使用简单干净的方式:

var chartObject = {"cols": [
    {id: "t", label: "t_label", type: "number"},
    {id: "s", label: "s_label", type: "number"} 
]};

var dataJson=[ [{v:1},{v:90}],[{"v":2},{"v":"33.7000"}] ];

chartObject["rows"] = [];   // start with empty array

// iterate over first dataJson array
for(var i = 0, len = dataJson[0].length; i < len; i++){ 
  // push in array `c` mapped to the i-th element of dataJson[0]
  chartObject["rows"].push({c : dataJson[0][i]["v"]});
}

console.log(chartObject);

<强> DEMO

忽略DEMO中的[object Object]

示例输出:

{
    cols: [{
        id: "t",
        label: "t_label",
        type: "number"
    }, {
        id: "s",
        label: "s_label",
        type: "number"
    }],
    rows: [{
        c: 1
    }, {
        c: 90
    }]
}

答案 2 :(得分:1)

Javascript对象是非常了不起的东西。只需在chartObject中将一个新字段定义为一个数组,然后push将所需的json数据放入其中。它看起来你希望行是一个对象数组,每个json对象都有一个标识符,但除非你明确想用字符串命名每个dataJson,否则只需使用一个索引数组:

chartObject["rows"] = [];

for(var i = 0; i < dataJson.length; i++) {
    chartObject["rows"].push(dataJson[0]);
}

现在您可以使用以下方式访问每个数据:

chartObject["rows"][index]

数据中的每个字段都包含:

chartObject["rows"][index]["v"]