Невозможно получить правильный результат при использовании функции Reduce для создания нового объекта из массива. - PullRequest
0 голосов
/ 01 мая 2020

Вот моя попытка, я пытаюсь создать новый объект из значения массива, но получаю результат как: two вместо нового объекта. кто-нибудь помочь мне понять функцию уменьшения ясно?

const arr = ['one', 'two']

function fn() {
  return arr.reduce((obj, val) => obj[val] = val , {});
}

console.log(fn()); 

//expecting: {one:'one', two:'two'} but getting 'two'

1 Ответ

2 голосов
/ 01 мая 2020

Ваша функция reducer возвращает val (последний обработанный элемент) вместо obj (аккумулятор), попробуйте:

const arr = ['one', 'two']

function fn() {
  return arr.reduce((obj, val) => { obj[val] = val; return obj; } , {});
}

console.log(fn()); 
...