首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在json数组对象迭代中获得期望的或类似的输出?

无法在json数组对象迭代中获得期望的或类似的输出?
EN

Stack Overflow用户
提问于 2017-09-24 11:58:07
回答 1查看 22关注 0票数 0

我有以下json对象,我希望得到如下所需的输出。

代码语言:javascript
复制
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只是它们的值,这些键可以是任何东西):

代码语言:javascript
复制
[{
        "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"
    }
]

我试过这样做:

代码语言:javascript
复制
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));
}

但我不是从上面的循环得到实际输出,请让我知道如何做到这一点,以获得我的类似输出。创建了小提琴。提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-24 12:11:49

假设testdata的结构是一致的。

代码语言:javascript
复制
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"
    }
];

if(testdata){
    months = testdata[0]['x'];


    output = [];
    for(var i = 0; i < months.length; i++){
        month = months[i].split('-')[0]
        output.push({
            "month" : month,
            "y1"    : testdata[0]['y'][i],
            "y2"    : testdata[1]['y'][i]
        });
    }

    console.log(output)
}

如果有两个以上的条目,当然可以解释如下:

代码语言:javascript
复制
if(testdata){
    months = testdata[0]['x'];
    numentries = testdata.length;

    output = [];
    for(var i = 0; i < months.length; i++){
        month = months[i].split('-')[0]

        monthData = {
            "month" : month
        }

        for(var x = 0; x < numentries; x++){
            monthData['y'+x] = testdata[x]['y'][i]
        }

        output.push(monthData);
    }

    console.log(output)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46389791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档