数组数组:无限循环
array of arrays: infinite loop
我使用javascript&jQuery。出于某种原因,我的内部For循环没有退出。计数器继续攀升超过数组长度,并继续添加元素,直到浏览器崩溃。在Firefox调试器中逐步执行时,groupList[i].length
显示正确的值。
你知道为什么内部循环从不返回false吗?
var $j = jQuery.noConflict();
// array of arrays
var groupList = [];
groupList[groupList.length] = ["Japan", "Honda", "Toyota", "Nissan"];
groupList[groupList.length] = ["America", "Ford", "Dodge", "Chevrolet"];
// loop that creates a radio button from the first element in each array
for (var i = 0; i < groupList.length; ++i) {
$j("#groupBtns").append("<label class='"btn btn-primary active'" id='"btn" +
groupList[i][0] + "'"><input type='"radio'">" + groupList[i][0] + "</label>");
}
// function to add second group of radio button for remaining elements in selected array
function groupClick(group) {
for (var i = 0; i < groupList.length; ++i) {
if (group == groupList[i][0]) {
// -- this is the infinite loop -- //
for (var o = 1; 0 < groupList[i].length; ++o) {
$j("#subGroupBtns").append("<label id='"btn" + groupList[i][o] +
"'" class='"btn btn-primary'"><input type='"radio'">" +
groupList[i][o] + "</label>");
}
}
}
}
// event listener
$j("#groupBtns").on('click', function (e) {
groupClick($j(e.target).text())
});
注意:数组的长度并不总是相同的,所以我不能为循环使用静态终止符。
您有一个打字错误:
for (var o = 1; 0 < groupList[i].length; ++o) {
您正在执行0 < groupList[i].length
,如果存在长度,则始终返回true。
应为:
for (var o = 1; o < groupList[i].length; ++o) {
相关文章:
- JavaScript中的数组图像循环
- jquery在json数组中循环
- 对象/数组和循环上的原型
- 使用部分字符串在数组中循环
- Javascript在数组中循环搜索字符
- 数组数组:无限循环
- 在 Javascript 数组中循环
- Javascript性能:如何在数组中循环并检查每个值比indexOf、search和match更快
- 如何在数组中循环,等待每个项目之间的时间
- Javascript循环数组无限不起作用
- innerHTML在递增数组中循环时添加重复项
- 完成ajax调用数组的循环,而不是在某个调用出错时中断
- 在json对象数组中循环
- 如何在地图框中的层数组中循环以侦听单击事件
- 异步编程-如何在对象数组中循环,并使用从api获取的数据更改每个对象的属性
- 在数组中循环,jQuery返回undefined
- 如何在从不同索引开始的数组中循环,同时仍然在整个数组中循环
- 在Javascript数组中循环
- 可以't在对象数组上循环时调用公共方法
- Javascript数组和循环