我们如何在javascript map中有一个像计数器值这样的整数

How should we have an interger like counter value in javascript map?

本文关键字:计数器 整数 有一个 javascript map 我们      更新时间:2023-09-26

如何在java脚本映射中创建一个值,使其表现得像整数计数器。

地图var ={"汽车":统计,"巴士":计数};

The way I want to use this map is:
if (car) {
   // incremeent the count of cars
} else {
   // increment the count of busses
}

我的问题是这样的地图在javascript语法上应该是什么样子的?

你可以这样初始化它:

var map = {cars: 0, buses: 0 };

然后,您可以像这样递增:

if (car) {
    ++map.cars;
} else {
    ++map.buses;
}

但是,我怀疑你需要更多的逻辑来你的if (car),这样你就可以真正地告诉它是一个汽车类型,而不仅仅是一个布尔值,但你还没有向我们展示你的代码是如何工作的,以确切地知道该建议什么。


你也可以更面向对象一点,把方法放在地图上:

var map = {
    cars: 0, 
    buses: 0,
    count: function(obj) {
        if (obj) {
            ++this.cars;
        } else {
            ++this.buses;
        }
    }
};
map.count(item);

同样,您必须修改其中的if (obj)部分以实际识别类型是否为汽车,但是您还没有公开足够的代码来知道如何做到这一点。

var counts = { cars: 0, buses: 0 };
if (car) {
    counts.cars++;
} else {
    counts.buses++;
}
// or more succinctly:
counts[car ? 'cars' : 'buses']++;

如果您有一个参数,例如vehicles,其值为carsbuses,那么您可以:

map[vehicles]++;

你也可以这样做:

map[car? 'cars' : 'buses']++;
如果你展示更多你正在做的事情,更多的帮助可能是最合适的。