【问题标题】: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 大小相同(这是有道理的),但有没有办法阻止这种情况,还是我需要不同的方法?
【问题讨论】:
标签:
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