如何从.map()JS创建不可变的映射

时间:2016-03-09 16:26:11

标签: javascript immutable.js

所以我有这样的功能

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

唯一的问题是myNewMap与oldMap的大小相同(这是有意义的),但有没有办法阻止它,或者我需要一个不同的方法?

2 个答案:

答案 0 :(得分:3)

我想你想要filter

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

甚至更短:

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

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

答案 1 :(得分:0)

映射数组后,您可以执行

Object.seal( yourMappedArrayObject );

这将使该对象成为不可变的。

Object.seal