javascript - 一个数组中的字符串在另一个数组中存在多少次?

标签 javascript arrays

<分区>

我有两个数组,storyWords 和 overusedWords。我试图了解对象格式中 storyWords 中过度使用的单词字符串的次数。输出应该像 {really: 2, very: 5, basically: 1},但是,目前我得到的输出像 {really: 1, very: 1, basically: 1 }。它只循环一次。

let story = 'Last weekend, I took literally the most beautiful bike ride of my life. The route is called "The 9W to Nyack" ' +
  'and it actually stretches all the way from Riverside Park in Manhattan to South Nyack, New Jersey. It\'s really an adventure ' +
  'from beginning to end! It is a 48 mile loop and it basically took me an entire day. I stopped at Riverbank State Park to take' +
  ' some extremely artsy photos. It was a short stop, though, because I had a really long way left to go. After a quick photo' +
  ' op at the very popular Little Red Lighthouse, I began my trek across the George Washington Bridge into New Jersey.' +
  '  The GW is actually very long - 4,760 feet! I was already very tired by the time I got to the other side.' +
  '  An hour later, I reached Greenbrook Nature Sanctuary, an extremely beautiful park along the coast of the Hudson.' +
  '  Something that was very surprising to me was that near the end of the route you actually cross back into New York!' +
  ' At this point, you are very close to the end.';

let overusedWords = ['really', 'very', 'basically'];

const storyWords = story.split(' ');


const objGroup = storyWords.reduce((previousValue, currentValue) => {
  overusedWords.forEach((word) => {
    if (currentValue === word) {
      previousValue[currentValue] += 1;
    } else {
      previousValue[word] = 1;
    }
  })
  return previousValue;
}, {});

console.log(objGroup);

最佳答案

您可以使用 Array#includes检查 currentValue 是否是一个过度使用的词,并相应地更新 previousValue:

const objGroup = storyWords.reduce((previousValue, currentValue) => {
  if (overusedWords.includes(currentValue)) {
    previousValue[currentValue] = (previousValue[currentValue] || 0) + 1;
  }
  return previousValue;
}, {});

改进:创建一个 Set const overusedWordsSet = new Set(overusedWords); 并使用 overusedWordsSet.has(currentValue)

检查一个词是否被过度使用

关于javascript - 一个数组中的字符串在另一个数组中存在多少次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68248289/

相关文章:

c++ - lua数组转换成c++数组

c++ - Cuda "invalid argument"二维数组 - 元胞自动机

c++ - 有人可以向我澄清这个数组/指针的想法吗?

c++使用数组而不调用构造函数

javascript - 获取 yammer feed 中的评论数量

javascript - Jquery Datatables 事件处理程序不适用于分页

javascript - 如何使用 React/JS 连接到斑马打印机

javascript - 将月份数字转换为名称

arrays - Swift 中的(类型)语法

javascript - nodejs/V8 是否将编译后的机器代码存储在磁盘上的任何位置?