javascript: построить ассоциативный массив на данных из обычного массива
есть массив структур данных
data = [
{key: 'xxx', value: 123, other: X},
{key: 'yyy', value: 456, other: Y},
{key: 'zzz', value: 789, other: Z},
];
как создать из него ассоциативный массив:
{
'xxx': 123,
'yyy': 456,
'zzz': 789
}
Я делаю с помощью метода reduce:
output = data.reduce((res, elem) => {
res[elem.key] = elem.value;
return res;
}, {});
Но можно ли это сделать в 1 строчку без вложенной функции, например с помощью того же map?
Ответы (1 шт):
Автор решения: teran
→ Ссылка
Object.fromEntries в помощь
const data = [
{key: 'xxx', value: 123, other: 1},
{key: 'yyy', value: 456, other: 2},
{key: 'zzz', value: 789, other: 3},
];
let output = Object.fromEntries(data.map(v => [v.key, v.value]));
console.log(output);
либо reduce укоротить
data.reduce((res, elem) => ((res[elem.key] = elem.value),res), {})