如何从 .map() JS 创建不可变地图

How to create an immutable map from .map() JS

所以我有这样的功能

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

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

我想你想要filter

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

或更短:

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

这将 return 一个新的 Map 只有符合谓词的值。

映射数组后你可以

Object.seal( yourMappedArrayObject );

这将使该对象不可变。

Object.seal