javascript - 寻找优雅/简洁的方式在 JavaScript 中构建哈希表(即频率)
问题描述
我正在寻找一种简洁的方法来从 JavaScript 中的数组(数字)构建哈希表。
(这出现了很多,至少在很多 O(n^2) 类型的问题上,这些问题可以优化为一次性运行,比如 Leetcode 类型的“算法”问题。)
看起来它可能是一个简洁的单行......但这是我所拥有的两行:
const freq = {}; // An Object is often used to implement a Hash Table in JavaScript
nums.forEach(num => freq[num] = freq[num] === undefined ? 1 : freq[num] + 1);
...假设nums
是一个Array<number>
和频率代表一个概念性的哈希表数据结构,像这样:
const nums = [2, 0, 2, 0, 0, 3, 0, 2, 0, 1];
// freq == { '0': 5, '1': 1, '2': 3, '3': 1 }
有人知道实现这一目标的更简洁的语法方式吗?
解决方案
推荐阅读
- twitter-bootstrap - Bootstrap 5 中的响应式排版?
- javascript - 如何获取数组发布值
- python - Pandas TypeError:只能将str(不是“int”)连接到str
- java - 我正在尝试在 javafx 上的游戏上添加开始屏幕
- excel - 如何将重复的行转为列?
- javascript - 将元素高度设置为 clientHeight 导致页面滚动
- python - 使用 os.system(
) 期望用户在 pyhton 中输入 - php - Guzzle 不接受表单参数中的数组
- javascript - 我们可以使用 javascript/typescript 覆盖“另一个应用程序正在显示 chrome 错误”吗?
- javascript - React Axios,无法读取 axios 响应中的 Set-Cookie 标头