Answer
t.me/js_testОтвет:
- Вариант №1
const fromArrToObj = (arr) => {
const obj = {};
arr.forEach((item) => {
obj[item.name] = item.value;
});
return obj;
};
- Вариант №2
const fromArrToObjShort = (arr) =>
arr.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});
Обьяснение:
Как и первом так и во втором варианты алгоритм одинаковый, сначала объявляем результирующий объект (во втором варианте это делается путём передачи второго параметра в метод reduce). Далее в цикле проходимся по каждому элементу входного массива и записываем в объект. Ну и последним этапом возвращаем результат.
Код для проверки:
const fromArrToObj = (arr) => {
const obj = {};
arr.forEach((item) => {
obj[item.name] = item.value;
});
return obj;
};
const fromArrToObjShort = (arr) =>
arr.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});
console.log(
fromArrToObjShort([
{ name: "width", value: 10 },
{ name: "height", value: 20 },
])
); // {width: 10, height: 20}
console.log(fromArrToObj([])); // {}