当循环中没有更多的元素时如何重新开始?
假设我从数组中只包含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; } }
- 当在我的html脚本标签上使用async ='true'来加载socket.io.js时,会导致io对象的一个未定义的错误任何build议?
- 如何在Javascript / Nodejs Lambda函数中获取AWS区域:
- 以expressjs渲染玉文件
- 访问根公共目录nodejs
- 为什么向提交事件添加“返回false”会阻止页面刷新?
- node.js swf提取definebitslossless2不正确的像素
- TypeError:app.get不是一个函数
- 尝试运行简单的hello world的.js输出时,得到“无法设置属性undefined的错误”clojurescript
- SailsJS使用CSRF查看图层分隔