Javascript 循环最多x个数字,或更少

Javascript 循环最多x个数字,或更少,javascript,Javascript,假设我有以下代码: var arr = [0,1,2,3,4]; // This will work for(let i=0;i<arr.length;i++){ console.log(arr[i]); } // And this will crash for(let i=0;i<11;i++){ console.log(arr[i]); } 现在全是意大利面条了。我想我还可以检查数字是否是未定义的,如下所示: // And this will crash for(l

假设我有以下代码:

var arr = [0,1,2,3,4];

// This will work
for(let i=0;i<arr.length;i++){
  console.log(arr[i]);
}

// And this will crash
for(let i=0;i<11;i++){
  console.log(arr[i]);
}
现在全是意大利面条了。我想我还可以检查数字是否是未定义的,如下所示:

// And this will crash
for(let i=0;i<11;i++){
  if(arr[i]!==undefined){
    console.log(arr[i]);
  }
}
//这将崩溃

对于(设i=0;i而不是扩展对到达数组长度或
11
的检查,您可以将数组的
长度或
11
作为索引检查的最小值

for (let i = 0, l = Math.min(array.length, 11); i < l; i++) {
    //
}
for(设i=0,l=Math.min(array.length,11);i
但是有没有办法像这样设置迭代器限制

for(let i=0; i<11 OR i<arr.length; i++)

您可以使用三元语句,如so
i<(i您可以在print语句之前将i的值与数组长度进行比较,如下所示

var arr = [0,1,2,3,4];
// This will work
for(let i=0;i<arr.length;i++){
  console.log(arr[i]);
}
// And this will crash
for(let i=0;i<11;i++){
    //compare i and length
     if(i<arr.Length)
        console.log(arr[i]);
     else
       break;
}
var-arr=[0,1,2,3,4];
//这会奏效的

for(让i=0;i“有没有办法确保它只在需要的时候运行?”…是的,您的第一个代码片段就是这样做的,它停在
arr.length
上。这有什么问题吗?我不确定我是否理解difficulty@ADyson如果数组超过11个元素,我只希望它仍然打印出11个元素。很抱歉,我没有指定这种情况。我明白了。
I<(arr.length<11?arr.length:11)
在这种情况下,我应该想为什么我需要使用and运算符?我看到这段代码是有效的,但我只是好奇为什么需要这样写,因为你想检查两个条件-
现在看它有意义了!谢谢!
for (let i = 0, l = Math.min(array.length, 11); i < l; i++) {
    //
}
for(let i=0; i<11 OR i<arr.length; i++)
for(let i=0; i<11 && i<arr.length; i++)
var arr = [0,1,2,3,4];
// This will work
for(let i=0;i<arr.length;i++){
  console.log(arr[i]);
}
// And this will crash
for(let i=0;i<11;i++){
    //compare i and length
     if(i<arr.Length)
        console.log(arr[i]);
     else
       break;
}