【发布时间】:2017-07-02 01:53:03
【问题描述】:
我有一个字符串数组
var characters = ["Jim", "Anna", "Nick", "Chris", "Peter"];
我的初始位置是 Jim[0]。如果我输入正确,我想进入下一个 在这种情况下,“安娜”。我可以通过将一个添加到当前索引来做到这一点。
当我从初始位置向左输入时事情变得更加棘手?
那么我该如何从 Jim[0] -> Peter[4] 出发呢?
有效的是
Jim[0] - 1 + characters.length which equals to 0 - 1 + 5 = 4
这是彼得。但这似乎不正确,因为在当前值为 Anna[1] 并且我想去 Jim[0] 的情况下我不能这样做。作为1 - 1 + 5 = 5
【问题讨论】:
-
如果旋转阵列符合您的要求,请查看此答案:stackoverflow.com/questions/1985260/javascript-array-rotate
-
什么语言?在 Java 中,int mod 使用负数,因此您可以执行类似(假设 delta 是您要移动的数字)
(((currentIndex + delta) % array.length) + array.length) %array.length之类的操作。我相信类似的技术也适用于 Javascript
标签: arrays algorithm iteration subtraction