Это моя функция в цикле foreach для создания объекта, который имеет свойство и значение как слово и его количество, но я хочу преобразовать его в карту в соответствии с es6

function harmlessRamsonNote(noteText,magazineText)
{
  var noteArr = noteText.split(' ');
  var magazineArr = magazineText.split(' ');
  var magazineObj = {};

  magazineArr.forEach(word => {
    if(!magazineObj[word])
    {
      magazineObj[word] = 0;
    }
    magazineObj[word]++;
  });

  console.log(magazineObj);
};
1
Akash Salunkhe 14 Мар 2018 в 12:58

2 ответа

Лучший ответ
magazineArr.map((word, index, array) => {
   !magazineObj[word] ? magazineObj[word] = 0 : magazineObj[word]++;
})
2
Efe 14 Мар 2018 в 10:01

map вернет новый элемент для каждого элемента. Вместо этого вы можете использовать reduce.

const magazineObj = magazineArr.reduce((acc,word) => {
   acc[word] = (acc[word] || -1) + 1;
}, {});
2
Suren Srapyan 14 Мар 2018 в 10:34