在 Node.js REPL 中:
> var map = new Map();
undefined
> map['foo'] = 'bar';
'bar'
> map['bar'] = 'baz';
'baz'
> map
Map { foo: 'bar', bar: 'baz' }
> map.forEach(console.log);
undefined
如您所见,foo
和 bar
键在 map
中明确定义,但是当我尝试使用 Map.prototype.forEach
,没有任何反应 - 但是 according to MDN, it should .另请注意,Map.prototype.forEach
已定义,因此不仅仅是此方法尚未实现。我也尝试过使用 for ... of ...
循环,结果相同 - 我为每次迭代提供的代码实际上并没有运行,即使 it should .
我使用的是 Node.js v4.4.4。我在网上搜索了“javascript map isn't iterable node”之类的东西,但没有找到。
这是怎么回事?
最佳答案
不是 100% 肯定,但我认为您需要将 map.set
与 Maps
一起使用。
var map = new Map();
map.set('foo', 'bar');
map.set('bar', 'baz');
map.forEach(console.log);
这将注销您要查找的每个项目。因为 Map.prototype.forEach
正在寻找可迭代的属性,所以您需要使用 set()
函数来设置这些可迭代的属性。
关于javascript - 为什么我不能迭代我的 ES6 Map 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39631407/