Преобразовать объект в массив объектов
Надо написать функцию, которая смогла бы "расплющить объект". Аргументы: (data, name, fields). Входные данные:
data = {
foo: {qty: 1, price: 23},
bar: {qty: 7, price: 182}
};
name="zoo";
fields=["Кол-во","Цена"];
Возвращенный массив:
[
{zoo: "foo", Кол-во: 1, Цена:23},
{zoo: "bar", Кол-во: 7, Цена:182}
]
Заметьте, zoo равен названиям ключей из data
Ответы (1 шт):
Автор решения: DiD
→ Ссылка
const input = {
foo: {qty: 1, price: 23},
bar: {qty: 7, price: 182}
};
const name="zoo";
const fields=["Кол-во","Цена"];
const output = Object.entries(input).map(
([val,props])=>({ [name]:val, ...
Object.fromEntries(Object.values(props)
.map((prop,idx)=>[fields[idx],prop]))}));
console.log(output);