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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM