2014-10-28 79 views
0

我現在有對象的數組,看起來像這樣的重構陣列:使用Javascript - 對象

[ 
    { 
     "key":"CES0000000001", 
     "25568.95655":"29923", 
     "25568.96078":"31603" 
    }, 
    { 
     "key":"CES0000000001", 
     "25568.96501":"34480", 
     "25568.96924":"38347" 
    } 
] 

我試圖找出重組該數據的最好方法是這樣的:

[ 
    { 
     "key":"CES0000000002", 
     "values": [ [ 25568.95655 , 29923 ] , [ 25568.96078 , 31603 ] ] 
    }, 

    { 
     "key":"CES0000000002", 
     "values": [ [ 25568.96501 , 34480 ] , [ 25568.96924 , 38347 ] ] 
    } 
] 

任何人都可以提供一些建議,爲這個和任何良好的資源重組javascript對象?我使用d3.js獲得更多可視化,數據格式化是關鍵。

+1

好像所有你需要做的是循環陣列上,並創建一些現在用'key'和'values'財產的對象。你特別注意什麼? – 2014-10-28 23:09:06

+0

第二個對象從哪裏獲得'key'?它沒有在原始數據中表示。 – 2014-10-28 23:11:22

+0

用第二個對象鍵修正了拼寫錯誤。我只是不習慣使用數組/對象,並不確定我應該在這裏使用哪些方法。 iSchluff提供了一個簡單的例子來完成工作。謝謝! – thefreeline 2014-10-28 23:58:15

回答

2

我的解決辦法是

var arr= [ 
    { 
     "key":"CES0000000001", 
     "25568.95655":"29923", 
     "25568.96078":"31603" 
    }, 
    { 
     "25568.96501":"34480", 
     "25568.96924":"38347" 
    } 
]; 

var transformed= arr.map(function(obj){ 
    var result= { 
     key: obj.key, 
     values: [] 
    } 

    for (var key in obj) { 
     if (obj.hasOwnProperty(key) && key !== "key") { 
      result.values.push([key, obj[key]]); 
     } 
    } 
    return result; 
}); 

console.log(transformed); 
+0

感謝您的乾淨答案。 – thefreeline 2014-10-29 00:02:27