Ton*_*alo 9 javascript ecmascript-6 array.prototype.map
当使用Map内置的 Javascript 时,如何使用 .map() 来迭代键?
我知道 for...of 可以使用如下所示:
const map = new Map();
map.set(0, 'Zero');
map.set(1, 'One');
map.set(2, 'Two');
for (let key of map.keys()) {
console.log(key);
}
Run Code Online (Sandbox Code Playgroud)
但这段代码会失败:
map.keys().map(key => {
console.log(key);
});
Run Code Online (Sandbox Code Playgroud)
Map.keys()返回一个迭代器,您可以使用扩展迭代器spread syntax
const map = new Map();
map.set(0, 'Zero');
map.set(1, 'One');
map.set(2, 'Two');
[...map.keys()].forEach(key => {
console.log(key);
})Run Code Online (Sandbox Code Playgroud)
实际上,它Array.prototype.map是为数组定义的,因此使用Array.from将其转换keys为数组,然后使用map:
const map = new Map();
map.set(0, 'Zero');
map.set(1, 'One');
map.set(2, 'Two');
console.log(...Array.from(map.keys()).map(key => {
return key ** 2; // square the keys
}));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17134 次 |
| 最近记录: |