当循环中没有更多的元素时如何重新开始?
假设我从数组中只包含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; } }