javascript - 使用 Lodash 计算字符串在数组中重复的次数

标签 javascript arrays lodash

我有一个字符串数组,它们是数据库中博客文章的标签。

这是查询的最终结果示例:

["apple","banana", "apple", "orange","grapes","mango","banana"];

我需要知道一个字符串在该数组中重复了多少次,以便我可以构建一种标签云。

最终结果应如下所示: [{name:"apple",count:2}, {name:"banana", count:2}, {name: "orange",count:1} 。 ..];

我在我的项目中使用 lodash,如果可能的话希望使用它。纯 JavaScript 也可以。

最佳答案

您可以使用groupBy完成繁重的工作,然后使用 map 根据您的喜好格式化结果:

const data = ["apple", "banana", "apple", "orange", "grapes", "mango", "banana"];

const result = _.values(_.groupBy(data)).map(d => ({name: d[0], count: d.length}));

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

关于javascript - 使用 Lodash 计算字符串在数组中重复的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48295094/

相关文章:

javascript - 如何使用 lodash 中的 includes 方法检查对象是否在集合中?

javascript - 如何使用 JavaScript 或 Jquery 检查数组中的变量是否为空或未定义

php - 查看数组中的一项是否为真

javascript - 如何使用 css 上的 "auto"值检查真正的宽度

php - 如何将查询结果添加到新数组中?

java - List.toArray(T[]) 的奇怪泛型行为

javascript - 如果值相等,如何使 lodash sortBy 不排序

javascript - 模板内的 Lodash 调用函数

javascript - 带有角色/带有meteor-roles包的组的组层次结构

javascript - 使用 WebWorkers 渲染 React 组件