如何循环数组并保持它们之间的索引增长

How to loop arrays and keep the indexing grow between them?

本文关键字:之间 索引 何循环 循环 数组      更新时间:2023-12-22

我用javascript做这件事,但它并不是真正基于任何语言。我似乎误解了这个逻辑。

我有一个停车系统,有不同的停车位(汽车、摩托车、大型汽车等)。

为了初始化停车系统,我必须循环使用初始设置数组,并通过指定每个ID和类型来创建空位。

我是这样做的:

这是我的配置,可以在系统的任何初始化之前添加数字和容量类型

var config = {
    capacityPerType: {
        compact: 150,
        large: 100
    }
}
manager = new Manager(config);

以下是我如何循环浏览所有类型并为它们分配一个点ID:

    var counterAdd = 0;
    for(slotType in config.capacityPerType) {
        var capacityPerType = parseInt( config.capacityPerType[slotType] );
        for(var i = 1; i <= capacityPerType; i++) {
            var newId = i + counterAdd;
            if (!this.defaults.slots[slotType]) {
                this.defaults.slots[slotType] = [];
            }
            this.defaults.slots[slotType][newId] = new Slot({id:newId,type:slotType});
        }
        counterAdd = capacityPerType;
    }

老实说,这是一种代码气味。它只适用于两种类型,除非第二种类型低于第一种类型。

有什么想法可以保持循环并保留计数器编号吗?:/

我想你只需要

counterAdd += capacityPerType;

代替

counterAdd = capacityPerType;

此外,你不需要parseInt上面几行-它已经是一个int了!

这里有一个jsfiddle来确认以上内容:http://jsfiddle.net/f7stn/1/