Answer

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([])); // {}

Report Page