循环遍历多维数组
js - loop through multidimensional array
我正在尝试在for循环中实现jquery热键。
acKey = [
["keydown", "alt+d", open],
["keydown", "alt+a", close],
["keydown", "alt+s", max],
];
for(i=0;i<=acKey.length;i++)
{
$(document).bind(acKey[i][0], acKey[i][1], acKey[i][2]);
}
然而,结果是错误Uncaught TypeError: Cannot read property '0' of undefined。我的代码有什么问题?
感谢@Matt的评论,他指出了这一点。
遍历数组最常用的格式是:
for(var i=0; i<array.length; i++) {
doSomethingWith(array[i];
}
注意这是一个"小于"操作符,而不是一个"小于等于"操作符。
此循环从0计数到array.length - 1
,因为for
语句的第二部分:i < array.length
表示"只要i小于array.length,就继续重复"。
…这就是你想要的,因为数组的长度是从0到1。也就是说,长度为4的数组编号为0、1、2、3。
如果你在i <= 4
时循环,那么循环将执行0、1、2、3、4——在Javascript中,当它引用array[4]
时,它将获得undefined
。
有时在for循环中确实需要"<=",但这是非常例外的情况。当你使用"<="的时候,考虑添加一个注释来说明原因。
你的问题是你的索引(越界)当i=acKey.length.
可以使用i<acKey。长度或实现"for>
acKey = [
["keydown", "alt+d", open],
["keydown", "alt+a", close],
["keydown", "alt+s", max],
];
var sub;
for(i in acKey) {
sub = acKey[i];
$(document).bind(sub[0], sub[1], sub[2]);
}
相关文章:
- 循环遍历以数组为值的Javascript对象
- 如何遍历包含对象的数组-javascript
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- 根据PHP中数组的长度在Google Maps API中循环遍历标记
- 无法在javascript中循环遍历对象数组
- 如何使用jquery遍历具有动态添加元素的数组
- 我想遍历一个对象数组,我不想要任何重复项
- 如何遍历 JSON 对象以适合 JavaScript 数组
- 如何遍历 d3 中的值内部数组并添加相应的子元素
- Javascript 尝试遍历对象数组以显示其属性
- 使用jQuery循环遍历颜色数组
- javascript循环遍历列表项,并在数组中返回结果
- 循环遍历以数组作为值的对象的对象
- 遍历jQuery JSON对象数组
- 用javascript遍历映射中的数组
- 遍历嵌套的Javascript数组以创建路径
- 根据属性值创建多个对象数组,然后遍历每个数组
- 使用内部数组遍历数组并创建新对象 - AngularJS
- Jquery中的关联数组遍历每个元素
- Javascript - 使用数组遍历字段