说明
简单测试下 JavaScript 4 种去重算法的效率。
- 使用哈希表记录是否重复
- 用内建 indexOf 函数判断是否重复
- 组合内建 filter 和内建 indexOf
- 全新的 new Set()
代码
结论
chrome
可以直接在你的浏览器运行上面的代码,即可得到一下信息:
数字代表运行时间,所以对于浏览器,结论是:
哈希表 > Set >> indexof+array >> indexof+filter
indexof 的两种慢得符合直觉,但是 Set 这么快有点意外,但是更意外的还在下面。
nodejs
(注意上面给出的代码不能直接在 node 运行,需引用 perf_hooks
,而且 node 和浏览器的 performance 接口存在差异,需要稍微修改一下)
哈希表 = Set >> indexof+array > indexof+filter
为什么 node 的哈希表这么慢啊 😂
参考