【问题标题】:In Node v.0.12, will there be any method to iterate over Map()?在 Node v.0.12 中,是否有任何方法可以迭代 Map()?
【发布时间】:2014-02-07 04:55:22
【问题描述】:

如果你创建一个 Map() 有什么方法可以迭代它吗?我知道 Node 0.12 还没有发布,但是 0.11.x 正在顺利进行中,我无法在 devel 分支中找到它,

var m = new Map();
m.set('foo', 'bar');

在不知道 'foo' 的情况下,有没有发现密钥已被设置?是否有 .keys() 或任何对象上允许这样做的任何内容,或者在 v8 获得更多 ES6 并因此发布 Node 0.14 之前我们运气不佳。

【问题讨论】:

    标签: node.js map ecmascript-harmony


    【解决方案1】:

    Node.js 0.12 和 iojs(自其初始版本以来)都在 Map 和 Set 实例上实现迭代。以Map 实例为例:

    for (let entry of map) {
        // Do something with entry, which looks like [key, val]
    }
    

    map.forEach(function (val, key) {
        // Do something with key and val.
    });
    

    如果您想仅迭代键或仅迭代值,则有一些辅助方法返回称为 keysvalues 的迭代器来执行此操作。

    【讨论】:

    • 我认为这在几周前是准确的,但现在 Node 0.12 已经发布,因此需要进行更新。即使没有 --harmony 标志,Map.prototype.keys、Map.prototype.values 和 Map.prototype.forEach 都已实现(对于 Set 也是如此,但注意 .keys() 和 .values() 在这种情况下是同义词)。
    猜你喜欢
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 2018-08-19
    • 2020-11-27
    • 2010-09-30
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多