我在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;
}
老实说,那是代码味道。它仅适用于2种类型,除非第二种类型低于第一种类型。
有关如何保持循环并保留计数器编号的任何想法? :/
答案 0 :(得分:1)
我认为你需要的只是
counterAdd += capacityPerType;
取代
counterAdd = capacityPerType;
另外,你不需要parseInt
上面几行 - 它已经是一个int!
这是一个确认上述内容的方法:http://jsfiddle.net/f7stn/1/