Как добавить в массив объектов ключ и вывести один объект
Допустим, есть массив объектов -
[{token: '1'},{token: '2', value:23},{token: '3', name:'superman'},{token: '4'}]
Необходимо добавить в каждый массив ключ, равный значению токена и вывести один объект такого вида:
{'1': {token: 1},'2':{token: 2, value:23},'3':{token: 3, name:'superman'},'4': {token: 4}}
Можно пользоваться только map и reduce.
Ответы (2 шт):
Автор решения: Denis640Kb
→ Ссылка
let arr = [{token: '1'},{token: '2', value:23},{token: '3', name:'superman'},{token: '4'}];
let result = []; // Массив чисто для демонстрации
let obj = new Object(); //Создаём объект
arr.forEach(function (c) { // Для каждого элемента исходного массива
obj[c.token] = c; // Записываем ключ равный токену и значение
});
result.push(obj); // Для демонстрации добавляем объект в массив(Можете и просто работать с этим объектом).
console.log(result); // Выводим в консоль
Автор решения: Exploding Kitten
→ Ссылка
Если использоваться только reduce, можно так:
let arr = [{token: '1'},{token: '2', value:23},{token: '3', name:'superman'},{token: '4'}];
let result = arr.reduce((acc, value) => (acc[value.token] = value, acc), {});
console.log(result);