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

时间:2013-11-29 13:14:26

标签: javascript arrays

我在中这样做,但它并不是真正基于任何语言。只是一个我似乎误解的逻辑。

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

要初始化停车系统,我必须遍历初始设置数组并创建空白点并指定每个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;
    }

老实说,那是代码味道。它仅适用于2种类型,除非第二种类型低于第一种类型。

有关如何保持循环并保留计数器编号的任何想法? :/

1 个答案:

答案 0 :(得分:1)

我认为你需要的只是

counterAdd += capacityPerType;

取代

counterAdd = capacityPerType;

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

这是一个确认上述内容的方法:http://jsfiddle.net/f7stn/1/