【问题标题】:How to create an immutable map from .map() JS如何从 .map() JS 创建不可变地图
【发布时间】:2016-03-09 16:26:10
【问题描述】:

所以我有这样的功能

myNewMap = oldMap.map((check) => {
     if (check.get('_id') === against.get('_id')) return check;
});

唯一的问题是 myNewMap 与 oldMap 大小相同(这是有道理的),但有没有办法阻止这种情况,还是我需要不同的方法?

【问题讨论】:

  • 你试过filter吗?

标签: javascript immutable.js


【解决方案1】:

我想你想要filter

myNewMap = oldMap.filter((check) => {
   return check.get('_id') === against.get('_id');
});

甚至更短:

myNewMap = oldMap.filter(check => check.get('_id') === against.get('_id'));

这将返回一个新的Map,其中仅包含符合谓词的值。

【讨论】:

    【解决方案2】:

    映射到数组后,你可以做

    Object.seal( yourMappedArrayObject );
    

    这将使该对象不可变。

    Object.seal

    【讨论】:

    • 我不认为这是他要问的。
    猜你喜欢
    • 2017-01-10
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 2021-02-05
    • 1970-01-01
    相关资源
    最近更新 更多