如何从 .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 );
这将使该对象不可变。
所以我有这样的功能
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 );
这将使该对象不可变。