JavaScript技巧 求余运算 实现循环访问索引

31 阅读1分钟

实现效果

image.png 循环访问arr里面的元素, 当超过索引时,回调到开头索引,循环往复.

顺方向

常规

let arr = [12,34,34,67]
let curIndex = 0;
if(curIndex=4){
    curIndex = 0
}else{
    curIndex++
}

求余运算

let arr = [12,34,34,67]
let curIndex = 0;
curIndex = (curIndex+1)%arr.length

效果 image.png

image.png 代码中的 % 运算符表示取模运算,用于获取 curIndex 除以 arr.length 的余数,这样可以保证 curindex 的值在 0 到 arr.length-1 (0~3)的范围内。

逆方向

循环访问arr里面的元素, 逆序,当小于索引0时,回调到结尾索引,循环往复.

常规

let arr = [12,34,34,67]
let curIndex = 0;
if(curIndex<0){
    curIndex=arr.length-1
}else{
    curIndex--
}

求余运算

let arr = [12,34,34,67]
let curIndex = 0;
curIndex  =  (curIndex+(arr.length-1))%arr.length

image.png

image.png 每次运算,都会将下一个索引指向前一个,

curIndex = (curIndex+(arr.length-1))%arr.length

%arr.length : 保证索引不会超

(curIndex+(arr.length-1)) : 保证是当前索引的前一位