当循环中没有更多的元素时如何重新开始?

假设我从数组中只包含3个“要”6个元素。如果到达结束,重新开始。

例:

let arr = ["a", "b", "c"]; let wanted = 5; for(let i = 0; i < wanted; i++) { console.log(arr[i]); } 

当然返回:

 a b c undefined undefined 

相反,我需要:

 a b c a b 

元素结束之后,是否有从数组开始的方法?

使用% (剩余)运算符获取余数 。

 console.log(arr[i % arr.length]); 

余数值将在数组索引范围内。

例如:当i到达

  • 3 => 3 % 3 = 0
  • 4 => 4 % 3 = 1
  • 0 => 0 % 3 = 0
 let arr = ["a", "b", "c"]; let wanted = 5; for (let i = 0; i < wanted; i++) { console.log(arr[i % arr.length]); } 

您可以使用(%)余数运算符。 它会从0开始,直到arr.length – 1。

第一步是

 [0 % 3] === 0 whole 0 remainder, [1 % 3] === 0 whole 1 remainder, [2 % 3] === 0 whole 2 remainder [3 % 3] === 1 whole 0 remainder [4 % 3] === 1 whole 1 remainder 
 let arr = ["a", "b", "c"]; let wanted = 5; for(let i = 0; i < wanted; i++) { console.log(arr[i % arr.length]); } 

只要使用%

 let arr = ["a", "b", "c"]; let wanted = 5; for(let i = 0; i < wanted; i++) { console.log(arr[i % arr.length]); } 
 if (i+1 == arr.length){ console.log(arr[i]); i=0; wanted =wanted-arr.length; }else{ console.log(arr[i]); } 

循环将正常工作,直到你的计数器在最后一个元素,那么它将被重置为0重新开始,并将继续这样做,直到你达到你想要的元素数量。

 let arr = ["a", "b", "c"]; let wanted = 5; for (let i = 0; i < wanted; i++) { console.log(arr[i]); if (arr.length == i) { i = 0; } }