将数组对象转换为另一个对象 - 在javascript中的第2部分

时间:2015-09-28 07:16:08

标签: javascript arrays

这是Converting an object into array的后续问题 。现在我想进行逆向工程,我想将JOSN转换回原始格式,除了它的对象,如下例所示。

  var data1=[
    {
        "name": "Coal",
        "value": "2",
        "time": "2015-11-31 00:00:00",
         "level":"10"
    },
    {
        "name": "Shale",
        "value": "4",
        "time": "2015-10-31 00:00:00",
       "level":"20"
    }

]

 var data2=
    {
        "Coal": {
            "September 2015": "2",
             "level":"10"
        },
        "Shale": {
            "October 2015": "4",
            "level":"20"

        }
    }

结果是一个对象而不是一个数组。任何人都可以帮我解决这个问题

1 个答案:

答案 0 :(得分:1)

function yymmddToString(yymmdd) {
    var months = ['January', 'February', 'March', 'April' .....];
    var x = yymmdd.split('-');
    return months[parseInt(x[1], 10)] + ' ' + x[0];
}
var result = data1.reduce(function(result, datum) {
    var x = result[datum.name] = result[datum.name] || {};
    x[yymmddToString(datum.time)] = datum.value;
    return result;
}, {});