JS中的Set,Map,Array查询速度比较:Set;Map;Array
Posted 哇哇哇小萌新
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中的Set,Map,Array查询速度比较:Set;Map;Array相关的知识,希望对你有一定的参考价值。
问题
- 今天做一个算法题,发现用arr.includes()查询超时,而改为set.has()查询就能通过,想弄明白Set,Map,Array查询的速度差别
代码
let len=10000
let arr=new Array(len).fill(0)
let set=new Set(arr)
let map=new Map()
for(let i=0;i<len;i++){
arr[i]=i
map.set(i,arr[i])
}
// 比较时间
console.log(\'arr\')
console.time()
for(let i=0;i<len;i++){
arr.includes(i)
}
console.timeEnd()
console.log(\'set\')
console.time()
for(let i=0;i<len;i++){
set.has(i)
}
console.timeEnd()
console.log(\'map\')
console.time()
for(let i=0;i<len;i++){
map.has(i)
}
console.timeEnd()
- 运行结果
结论
有查询速度Set>Map>Array
以上是关于JS中的Set,Map,Array查询速度比较:Set;Map;Array的主要内容,如果未能解决你的问题,请参考以下文章
js遍历集和(Array,Map,Set) (forEach, map, for, for...in, for...of)