Преобразование массива объектов javascript в es6/7
Я новичок в Javascript, мне обычно нужно обрабатывать преобразование между объектом и массивом, но как я могу сделать это более элегантным или чистым в ES6/7, например, использовать Spread syntax
или же lodash
... вместо того, чтобы использовать для итерации цикла (так как я не люблю изменяемые вещи)
Я хочу преобразовать объект ниже:
{
book: {
1001: 'a',
1002: 'b',
1003: 'c'
},
game: {
1001: 'a'
}
}
ниже массива объекта:
[
{
category: 'book',
item: [
{ id: 1001, name: 'a' },
{ id: 1002, name: 'b' },
{ id: 1003, name: 'c' }
]
},
{
category: 'game',
item: [
{ id: 1001, name: 'a' }
]
}
]
1 ответ
Вы можете создавать новые объекты и отображать внутренние объекты как новые.
var data = { book: { 1001: 'a', 1002: 'b', 1003: 'c' }, game: { 1001: 'a' } },
result = Object
.entries(data)
.map(([category, item ]) =>
({ category, item: Object.entries(item).map(([id, name]) => ({ id, name })) }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }