【发布时间】:2021-11-07 17:54:11
【问题描述】:
假设我有一张带钥匙的地图:
const map = new Map([['a', 'Apple'], ['b', 'Banana']])
我想遍历地图的键('a'、'b')。
我知道这些按键循环的方式:
Map.prototype.forEach()
map.forEach((_value, key) => {
console.log(key)
})
优点:简单
缺点:必须忽略函数中的第一个参数 - (_value, key) => 而不仅仅是 key => 。
从Map.prototype.keys() 创建数组,然后Array.prototype.forEach()
[...map.keys()].forEach(key => {
console.log(key)
})
优点:回调可以是key =>
缺点:[...map.keys()]。阅读代码时可能会感到困惑,并且可能会降低性能。
for of 循环通过 Map.prototype[Symbol.iterator]()
for (const [key] of map) console.log(key)
优点:可能很快。易于阅读。
缺点:不是箭头函数(认为 forEach 更好)。
for of 循环通过 Map.prototype.keys()
for (const key of map.keys()) console.log(key)
与之前的方法非常相似。
所以我想知道哪种方式性能最好。
【问题讨论】:
标签: javascript performance loops dictionary key