v-m*_*moe 2 javascript es6-map
如果我有MapJavaScript,例如
const myMap = new Map()
myMap.set(0, 'zero')
myMap.set(1, 'one')
Run Code Online (Sandbox Code Playgroud)
那么这两个似乎都可以有效地遍历键值对(以及我目前不感兴趣的许多其他选项):
// with .entries()
for (const [key, value] of myMap.entries()) {
//
}
// without
for (const [key, value] of myMap) {
//
}
Run Code Online (Sandbox Code Playgroud)
是否存在他们不做同样事情的边缘情况?
\n\n是否存在他们不做同样事情的边缘情况?
\n
不会。您从中获取的迭代器对象与entries映射本身提供的迭代器对象完全相同。事实上,someMap[Symbol.iterator](当您向对象询问其迭代器时调用的函数)实际上与以下函数完全相同someMap.entries:
const someMap = new Map();\nconsole.log(someMap[Symbol.iterator] === someMap.entries);Run Code Online (Sandbox Code Playgroud)\r\n在规范中:
\nMap.prototype.entriesMap.prototype[@@iterator](@@iterator是Symbol.iterator)\xc2\xa0\xe2\x80\x94 字面上只是指向entries