我有这个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很新,甚至无法生成一些启动代码。非常感谢您的帮助。
答案 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中的[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"]