2015-03-19 5 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 переменная является объектом и anna и robin является массив объектов :

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

ответ

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

функция, как показано ниже может помочь вам:

EDIT: редактировал ответ вмещающую ч предложенные 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

+0

Спасибо @ cafebabe1991 –

Смежные вопросы