元素计数器与JavaScript中的过滤器

Lex27

我有两个数组,需要返回带有元素和计数器的map对象。它几乎完成了,但是我坚持使用计数器-对于计数器> 1的元素,它始终“未定义”。谁能帮我?

const stopWords = ['', 'a', 'the', 'and', 'or'];
const pageWords = ['HellO', 's', 'And', 'hellO', '', 'AnD', 'NAME', 'oR', 'apple', 'HELLO', 'aPple'];

const wordsCount = (words, stopWords) => {
  const all = new Map();
  const arr = words.map(word => word.toLowerCase())
    .filter(word => !stopWords.includes(word))
    .reduce((acc, word) => {
         const count = all.has(word) ? acc[word] + 1 : 1;
         all.set(word, count);
         return acc;
    }, {});
   return all;
};

//what I need:  [['hello', 3], ['s', 1], ['name', 1], ['apple', 2]]
布雷特·德伍德迪

你超级亲密。我相信现有代码的唯一问题是如何访问的当前计数word而不是使用,acc[word]您应该使用all.get(word)访问现有计数。像这样:

const stopWords = ['', 'a', 'the', 'and', 'or'];
const pageWords = ['HellO', 's', 'And', 'hellO', '', 'AnD', 'NAME', 'oR', 'apple', 'HELLO', 'aPple'];

const wordsCount = (words, stopWords) => {
  const all = new Map();
  const arr = words.map(word => word.toLowerCase())
    .filter(word => !stopWords.includes(word))
    .reduce((acc, word) => {
         const count = all.has(word) ? all.get(word) + 1 : 1;
         all.set(word, count);
         return acc;
    }, {});
   return all;
};

console.log(Array.from(wordsCount(pageWords, stopWords)))

另外,此更改意味着您不再需要acc,所以reduce我认为aforEach使得代码更易于阅读。像这样:

const stopWords = ['', 'a', 'the', 'and', 'or'];
const pageWords = ['HellO', 's', 'And', 'hellO', '', 'AnD', 'NAME', 'oR', 'apple', 'HELLO', 'aPple'];

const wordsCount = (words, stopWords) => {
  const all = new Map();
  words.map(word => word.toLowerCase())
    .filter(word => !stopWords.includes(word))
    .forEach(word => {
      const count = all.has(word) ? all.get(word) + 1 : 1;
      all.set(word, count);
    });
  
  return all;
};

console.log(Array.from(wordsCount(pageWords, stopWords)));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带过滤器或减法器或类似物的计数器

来自分类Dev

javascript DOM 元素计数器

来自分类Dev

熊猫过滤器计数

来自分类Dev

AngularJS过滤器中的regexp JavaScript

来自分类Dev

数组中的Javascript嵌套过滤器

来自分类Dev

配额计数器:是什么使它们与众不同?“标识符”字段上方是否还有其他过滤器?

来自分类Dev

JavaScript数字计数器中的错误

来自分类Dev

根据MySQL中的过滤器检索每个id的计数

来自分类Dev

如何在SQL查询中按过滤器计数?

来自分类Dev

在管理列表过滤器中获取子键的计数

来自分类Dev

多个过滤器的 Dplyr 计数/计数

来自分类Dev

获取数组中所有元素的长度以在javascript / react中创建过滤器

来自分类Dev

用于删除页面元素的 Javascript 搜索过滤器

来自分类Dev

如何清除Angular中select元素中的过滤器?

来自分类Dev

如何访问jQuery过滤器函数中的元素?

来自分类Dev

绕过过滤器方法中的元素

来自分类Dev

如何在React中制作元素过滤器?

来自分类Dev

模板中的Django布尔过滤器元素

来自分类Dev

如何访问jQuery过滤器函数中的元素?

来自分类Dev

使用过滤器对 AngularJS 中的元素进行分组

来自分类Dev

使用过滤器在 pandoc 中添加图形元素

来自分类Dev

用于 div 中 ul 元素类的 jQuery 过滤器

来自分类Dev

Lodash 过滤器搜索数组中的几个元素(Vue)

来自分类Dev

使用带计数的过滤器

来自分类Dev

Django过滤器:计数数据

来自分类Dev

SQL查询过滤器,计数是否

来自分类Dev

Elasticsearch过滤器/计数嵌套字段

来自分类Dev

Django:用过滤器注释计数

来自分类Dev

在jQuery插件中为每个元素设置计数器

Related 相关文章

热门标签

归档