当使用 Map 返回的迭代器时,需要注意其返回的是键-值对,需要通过解构或者迭代器的 next() 方法分别取出键和值。例如,
const myMap = new Map()
myMap.set('key1', 'value1')
myMap.set('key2', 'value2')
// 错误示例
for (let item of myMap) {
console.log(item)
// 输出 ["key1", "value1"], ["key2", "value2"]
}
// 正确示例
for (let [key, value] of myMap) {
console.log(key, value)
// 输出 "key1" "value1", "key2" "value2"
}
如果只需要键或者值,也可以使用 Map 的keys()
或者values()
方法。
const myMap = new Map()
myMap.set('key1', 'value1')
myMap.set('key2', 'value2')
for (let key of myMap.keys()) {
console.log(key)
// 输出 "key1", "key2"
}
for (let value of myMap.values()) {
console.log(value)
// 输出 "value1", "value2"
}
需要注意的是,如果对于不仅仅是键和值的情况,可能需要使用其他的数据结构来存储和访问数据。