如何循环数组并保持它们之间的索引增长
How to loop arrays and keep the indexing grow between them?
我用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/
相关文章:
- 名称输入的索引
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- 在jQuery中获取表的行索引
- 在索引.html和应用.js [node.js] 之间共享变量
- 如何循环数组并保持它们之间的索引增长
- 如何确定数组中的值是否位于两个附加数组的所有并行索引的值之间
- Angular 在 orderBy 之后进入索引之间
- 如何有效地搜索具有介于 jquery 之间的索引的 name 属性的输入
- 查找循环数组中任意两个索引之间的中间索引
- 使用indexOf()获取两个索引之间的子字符串
- AngularJS控制器索引页之间的导航
- jQuery删除了索引位于两个值之间的复选框
- 在索引x, y之间插入元素
- 无效的列索引未定义.取值范围为[0-8]之间的整数
- JQuery -切换焦点之间的输入和输入根据表索引
- JavaScript通过Z索引在其他图像之上的图像之间转换
- 在动态生成的函数中引用JavaScript上的循环索引和非索引时,它们之间的区别是什么
- 两个索引之间的多个顺序字符串替换