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), {})
→ Ссылка