有什么办法可以让下面的代码正常工作吗? 我希望“i”在达到限制时停止..而不使用 if 条件
var a1 = [1, 2, 3, 4, 5, 6];
var a2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (var i = 0, j = 0; i < a1.length, j < a2.length; i++, j++) {
console.log('a1: ' + '[' + i + ']' + a1[i]);
console.log('a2: ' + a2[j]);
}
最佳答案
循环的第二个参数应该是 bool 条件。
这个
i < a1.length, j < a2.length
实际上被解释为返回 i < a1.length
的结果仅。
由于您希望循环在两个条件都为真时执行,因此请使用逻辑 AND 运算符组合这些条件:
var a1 = [1, 2, 3, 4, 5, 6];
var a2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (var i = 0, j = 0; i < a1.length && j < a2.length; i++, j++) {
console.log('a1: ' + '[' + i + ']' + a1[i]);
console.log('a2: ' + a2[j]);
}
顺便说一下,i
和j
实际上是互相重复的。您可以使用单循环计数器:
var a1 = [1, 2, 3, 4, 5, 6];
var a2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (var i = 0; i < a1.length && i < a2.length; i++) {
console.log('a1: ' + '[' + i + ']' + a1[i]);
console.log('a2: ' + a2[i]);
}
甚至
var a1 = [1, 2, 3, 4, 5, 6];
var a2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var minLength = Math.min(a1.length, a2.length);
for (var i = 0; i < minLength; i++) {
console.log('a1: ' + '[' + i + ']' + a1[i]);
console.log('a2: ' + a2[i]);
}
关于javascript - 多变量 for 循环 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34059919/