2017-09-24 20 views
0

我有以下的json对象,我想得到如下所需的输出。无法在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。提前致谢 !

+0

JSON是*文本符号*进行数据交换。 [(More here。)](http://stackoverflow.com/a/2904181/157247)如果你正在处理JavaScript源代码,而不是处理*字符串*,那么你并没有处理JSON。 –

+0

目前尚不清楚您的第一个输入参数如何映射到期望的结果 – Thusitha

+0

引用的代码中没有任何内容会生成名为'day','y1'或'y2'的对象。所以这将是从哪里开始。 –

回答

1

假设testdata的结构是一致的。

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) 
} 

如果你有超过两个条目,您可在此过程中考虑到:

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) 
}