arrays - 如何获取数组中的下一个元素但如果当前是最后一个则获取第一个

标签 arrays ruby loops

我有一组颜色代码:

array = %w(#646C74 #F68848 #1FA45C etc...)

每次查询数组时,我都会与上次使用的颜色进行比较,并希望获得下一个。如果最后使用的是数组中的最后一个,我想要第一个。

有没有比以下更专门或更简洁的方法来解决这个问题:

index_of_last_used_color = array.index(last_used_color)
next_position = index_of_last_used_color + 1
if color = array[next_position]
    return color
else
    return array.first
end

最佳答案

使用 cycle 方法,枚举器似乎就是您要找的东西。

color_cycle = %w(#646C74 #F68848 #1FA45C).cycle
color_cycle.next # => "#646C74"
color_cycle.next # => "#F68848"
color_cycle.next # => "#1FA45C"
color_cycle.next # => "#646C74"
color_cycle.next # => "#F68848"

关于arrays - 如何获取数组中的下一个元素但如果当前是最后一个则获取第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44154770/

相关文章:

java - Java 的 StringReader 的 Ruby 等价物是什么?

ruby-on-rails - 将字符串 "@patient"更改为变量

javascript - Expo Audio 不会停止循环

python - 如何将一行输出作为字符串?

javascript - 使用 React js 为每一行创建动态复选框

java - 不允许重复的数组(Java)

javascript - 如何在数组前使用带有额外参数的 JavaScript 的 "apply"方法?

ruby - 积极的前瞻不会在第一次出现时停止

javascript - 改进这个数组数据模型

java - 从打印循环中排除日期