2015-03-19 148 views
0

我有一個看起來像下面這樣的對象數據:如何對象轉換爲對象的數組的JavaScript

data = { 
      anna:{ 
       phase1:23, 
       phase2:24, 
       phase3:0, 
       phase4:5, 
       phase5:0 
       }, 
      Robin:{ 
       phase1:16, 
       phase2:12, 
       phase3:21, 
       phase4:23, 
       phase5:2    
       } 
     } 

現在我想將它們轉換到data變量是對象和annarobin是對象的數組:

data = { 
      anna:[ 
       { phase1: 23 }, 
       { phase2: 24 }, 
       { phase3: 0 }, 
       { phase4: 5 }, 
       { phase5: 0 } 
       ], 
      Robin:[ 
       { phase1: 16 }, 
       { phase2: 12 }, 
       { phase3: 21 }, 
       { phase4: 23 }, 
       { phase5: 2 }    
       ] 
     } 
+0

怎麼樣'for'? – zerkms 2015-03-19 02:57:33

回答

0

試試這個

function convertToArray(obj) { 
var retVal = []; 
for (key in obj) { //iterates through the list of key-val pairs 
    if (obj.hasOwnProperty(key)) { 
    retVal.push({ key: obj[key]}); 
    } //pushes it to newly created array 
} 
return retVal; 
} 
1

像下方的功能可以幫助您:

編輯:編輯答案容納通道cafebabe1991建議的時代。

function convertToArray(obj) { 
var retVal = []; 

for (var key in obj) { { //iterates through the list of key-val pairs 
    if (obj.hasOwnProperty(key)) { 
    retVal.push({ key: obj[key]}); //pushes it to newly created array 
    } 
} 
+1

這不是通過對象循環的理想方式...使用object.hasOwnProperty(key),因此它不會遍歷其他屬性。 欲瞭解更多詳情,請閱讀此處.... http://stackoverflow.com/questions/684672/loop-through-javascript-object – cafebabe1991 2015-03-19 03:07:27

+0

謝謝@ cafebabe1991 – 2015-03-19 03:10:32