我目前有这样的代码,其中speciesMap是一个映射,其中键具有映射值。有没有简单的方法来增加Map对象的值?
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);
这显然是行不通的。
我想'obj'应该是一个对象,而不是一个'Map',当你不使用动态密钥的任何地方? – Bergi
因为我之前没有在javascript中使用过动态按键,所以我被这个功能搞乱了,并且被带走了,但是'obj'可以是一个对象。会从代码中移除一个'get()'。 – hitsugan
是的,你可以做'specialMap.get(species).count ++;':-) – Bergi