2015-09-28 81 views
-4

這是一個跟進問題Converting an object into array 。現在我想要做一個反向工程,我想將JOSN轉換回原始格式,除了它的一個對象,如下面的例子所示。將數組對象轉換爲另一個對象 - 第2部分在javascript中

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" 

     } 
    } 

其結果爲對象不是array.Can有人請幫助我在這個問題上

+0

你已經嘗試到目前爲止 – ozil

+0

大致來說:' for(..)data2 [value ['name']] [value ['time']] = value ['value']' - 接受並運行它。運行,forgottofly,跑! – deceze

回答

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; 
}, {}); 
+0

@Joromanda X我得到的月份不是一個函數,如果我給所有的月份 – forgottofly

+0

是啊。我 「製造」 一個錯字 –

+0

感謝@Jaromanda – forgottofly

相關問題