arrays - 如何在字符串数组中左右导航

标签 arrays algorithm iteration subtraction

我有一个字符串数组

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

最佳答案

像这样的东西会起作用。

var characters = ["Jim", "Anna", "Nick", "Chris", "Peter"];
var index = 0; // Currently at Jim.
var direction = -1; // 1 for right, -1 for left.

// What's left of our current position?
characters[(index + characters.length + direction) % characters.length]; // Peter!

关于arrays - 如何在字符串数组中左右导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214897/

相关文章:

arrays - 使用 VBA 使用简单命令从非连续范围的并集获取值到数组中(无循环)

c - 如何避免 C 数组中的重复元素输入?

algorithm - Prolog - 返回结果而不是在算法中打印

algorithm - 特殊minHeap,如何在O(n) 中打印所有n 个元素?

algorithm - 将一组数字分成差值最小的两部分

java - 在 Java 中迭代对象的 TreeMap(不是字符串!!)

c - 在 C 中将位 vector 作为数组进行迭代的最佳方法

javascript - 处理字符串数组中的多个字符串javascript

f# - 在 F# 中迭代​​嵌套序列 - 如何?

ios - 如何在排序数组中将一行代码从 Objective-C 转换为 Swift?