有没有办法,下面的代码工作正常.. 我希望'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]);
}
答案 0 :(得分:1)
循环的第二个参数应该是布尔条件。
这一个
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]);
}
&#13;
顺便说一下,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]);
}
&#13;
甚至
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]);
}
&#13;
答案 1 :(得分:0)
不需要条件
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, a1[i]; i++, j++) {
console.log('a1: ' + '[' + i + ']' + a1[i]);
console.log('a2: ' + a2[j]);
}
&#13;