在javascript中将foreach转换为map函数

时间:2018-03-14 09:58:37

标签: javascript ecmascript-6

这是我在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);
};

2 个答案:

答案 0 :(得分:2)

magazineArr.map((word, index, array) => {
   !magazineObj[word] ? magazineObj[word] = 0 : magazineObj[word]++;
})

答案 1 :(得分:2)

map将为每个项目返回一个新项目。相反,您可以使用reduce

const magazineObj = magazineArr.reduce((acc,word) => {
   acc[word] = (acc[word] || -1) + 1;
}, {});