2017-01-19 6 views
1

У меня есть такой объект.Как изменить вложенный объект в массив

var Obj = { 
    obj1 : { 
     val : 1, 
     id : 1 
    } 
    obj2 : { 
     val : 2, 
     id :2 
    } 
    obj3 : { 
     val : 3, 
     id :3 
    } 
} 

Я хочу, чтобы мои obj1 и все к югу от объекта в один массив, так что я могу получить значение. Я хочу массив в массиве, потому что я хочу их восстановить, так как он динамический, я не могу использовать Obj.obj1, поэтому хочу нажать на массив.

Может ли кто-нибудь сказать, как я могу это получить. Спасибо за помощь

+0

Что вы пробовали? Также неясно, как вы хотите, чтобы результат выглядел. Вы хотите, чтобы результат был просто '[1, 2, 3]'? – 4castle

ответ

2

Используйте методы Object.keys и Array#map, чтобы преобразовать их в массив, но заказ не гарантируется, так как у объектов нет никакого заказа.

var Obj = { 
 
    obj1: { 
 
    val: 1, 
 
    id: 1 
 
    }, 
 
    obj2: { 
 
    val: 2, 
 
    id: 2 
 
    }, 
 
    obj3: { 
 
    val: 3, 
 
    id: 3 
 
    } 
 
}; 
 

 
var res = Object.keys(Obj).map(function(k) { 
 
    return Obj[k]; 
 
    }) 
 

 
console.log(res);

+0

'Object.values ​​(Obj)' - еще один вариант (хотя поддержка браузера ниже) – 4castle

+0

@ 4castle: он не поддерживается широко. –

+0

Позвольте мне попробовать. – David

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