(Javascript) Нужна помощь в преобразовании объекта в массив - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть объект, внутри которого есть объекты в следующей форме:

Object { 
       "item1": { "subitem1": 5, "subitem2": 10 },
       "item2": { "subitem1": 3, "subitem2": 12, "subitem3": 1 },
       "item3": { "subitem1": 8, "subitem2": 1, "subitem3": 3 }
       }

Я хочу преобразовать его в массив следующей формы:

[0] Object { key: "item1", "subitem1": 5, "subitem2": 10 }
[1] Object { key: "item2", "subitem1": 3, "subitem2": 12, "subitem3": 1 }
[2] Object { key: "item3", "subitem1": 8, "subitem2": 1, "subitem3": 3 }

Любойидеи?Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

Вы можете попробовать этот помощник

let obj = { "item1": { "subitem1": 5, "subitem2": 10 }, "item2": { "subitem1": 3, "subitem2": 12, "subitem3": 1 }, "item3": { "subitem1": 8, "subitem2": 1, "subitem3": 3 } };

let op =[];
for(let key in obj){
  op.push({
    key : key,
    ...obj[key]
  })
}
console.log(op);
0 голосов
/ 05 декабря 2018

Вы можете получить записи объекта и назначить ключ.

var object = { item1: { subitem1: 5, subitem2: 10 }, item2: { subitem1: 3, subitem2: 12, subitem3: 1 }, item3: { subitem1: 8, subitem2: 1, subitem3: 3 } },
    result = Object.entries(object).map(([key, o]) => Object.assign({ key }, o));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 05 декабря 2018

Вы можете использовать Object.keys () и Array.prototype.map () :

const obj = { "item1": { "subitem1": 5, "subitem2": 10 }, "item2": { "subitem1": 3, "subitem2": 12, "subitem3": 1 }, "item3": { "subitem1": 8, "subitem2": 1, "subitem3": 3 }},
res = Object.keys(obj).map(key => ({key, ...obj[key]}));

console.log(res);

Заметьте, однако, что порядок ключей, полученных из Object.keys, не обязательно совпадает с порядком, указанным в вашем объекте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...