gpt4 book ai didi

javascript - 在给定大于数组的偏移量的情况下,向前或向后无缝循环数组

转载 作者:行者123 更新时间:2023-11-30 08:04:47 26 4
gpt4 key购买 nike

这与我之前问过的问题类似 ( Select X amount forward and backwards in an array, looping to beginning and end if needed )

但我无法根据我要解决的不同问题调整答案。

给定一个任意数组和一个当前索引

[a, b, c, d, e, f, g, h, i, j, k]

假设当前索引暂时为 0 (a)

我需要找到一个新索引,给定偏移量 n(假设为 30,向后移动也可能为负数)。这样它将循环遍历数组,从头开始继续,直到结束(或者如果您向后循环,则从末尾继续),然后只返回新的数组索引。

我已经设法调整类似问题的答案以向前移动数组,但是当我尝试将其更改为向后移动时它会中断。

function crawlArrayForwards(array, index, n){
var finalIndex;
for (var i = index, len = array.length; i <= index + n; i++) {
finalIndex = (i + len) % len;
}
return finalIndex;
}

最佳答案

看,您不需要 for 循环或任何东西。您只需将您的数字加上其符号并取模即可。

function crawlArray(array, index, n) {
return ((index + n) % array.length + array.length) % array.length;
}

就是这样。应使用 n 的正值或负值。

关于javascript - 在给定大于数组的偏移量的情况下,向前或向后无缝循环数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19999877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com