我目前有这个代码,其中物种映射是一个映射,其中键具有映射作为值。
var speciesMap = new Map();
...
if(!speciesMap.get(species)) {
let obj = new Map();
obj.set('count', 0);
obj.set('vol', 0);
speciesMap.set(species, obj);
}
我想将给定物种的数量增加 1,但我发现这样做的唯一方法是这样。
speciesMap.get(species).set('count', speciesMap.get(species).get('count') + 1);
有没有更简洁更简单的方法来增加值,而不是再次沿着整个地图来检索它的值?音量也是如此,我需要向下移动对象并添加+ vol
到它。
想要类似的东西
speciesMap.get(species).set('count', this+1);
这显然不起作用。
您可以使用辅助函数:
function update(map, key, callback) {
map.set(key, callback(map.get(key)));
}
那么你长长的表情就变成了
update(speciesMap.get(species), 'count', v => v+1);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句