【发布时间】:2017-09-24 11:58:07
【问题描述】:
我有以下 json 对象,我想得到如下所需的输出。
var testdata = [{
"x": [
"Jan-10",
"Feb-10",
"Mar-10",
"Apr-10",
"May-10"
],
"y": [
"100.0",
"25.0",
"100.0",
"60.0",
"500.0"
],
"xf": "Jan-10",
"xl": "May-10",
"yf": "100.0",
"yl": "500.0",
"xtitle": "day",
"ytitle": "rs"
},
{
"x": [
"Jan-11",
"Feb-11",
"Mar-11",
"Apr-11",
"May-11"
],
"y": [
"450.0",
"650.0",
"300.0",
"70.0",
"360.0"
],
"xf": "Jan-11",
"xl": "May-11",
"yf": "450.0",
"yl": "360.0",
"xtitle": "day",
"ytitle": "rs"
}
];
我想迭代它并且应该得到类似的输出(y1 和 y2 只是它们的值,这些键可以是任何东西):
[{
"day": "Jan",
"y1": "100",
"y2": "450"
},
{
"day": "Feb",
"y1": "25",
"y2": "650"
},
{
"day": "Mar",
"y1": "100",
"y2": "300"
},
{
"day": "Apr",
"y1": "60",
"y2": "70"
},
{
"day": "May",
"y1": "500",
"y2": "360"
}
]
我试过这样:
if(testdata.length > 0){
var outarr = [];
for(var i = 0; i < testdata[0].x.length; i++) {
outarr.push(
{
"x": testdata[0].x[i],
"y": testdata[0].y[i]
})
}
console.log(JSON.stringify(outarr));
}
但我没有从上述循环中获取实际输出,请告诉我如何执行此操作以获得类似的输出。创建Fiddle。提前致谢!
【问题讨论】:
-
JSON 是一种用于数据交换的文本符号。 (More here.) 如果您正在处理 JavaScript 源代码,而不是处理 字符串,那么您就不是在处理 JSON。
-
不清楚您的第一个输入参数是如何映射到所需结果的
-
引用的代码中没有任何内容可以生成具有名为
day、y1或y2的属性的对象。所以这就是开始的地方。 -
@T.J.Crowder,我已经编辑了帖子,这意味着 y1, y2 可以是任何键,但我的值应该像上面那样。我只需要类似的输出,就是这样。
-
@Thusitha,我不想要 eact 输出,只需要类似的输出。请注意,键(y1、y2 可以是任何值,但它们的值应该是正确的),已编辑帖子。
标签: javascript jquery arrays json loops