小编Ama*_*ley的帖子

Ruby按索引选择

我试图从数组中选择元素:

arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n']
Run Code Online (Sandbox Code Playgroud)

其索引是斐波纳契数.我想要结果:

['a', 'b', 'c', 'd', 'f', 'i', 'n']
Run Code Online (Sandbox Code Playgroud)

我的代码返回元素和索引.

def is_fibonacci?(i, x = 1, y = 0)
  return true if i == x || i == 0
  return false if x > i
  is_fibonacci?(i, x + y, x)
end

arr.each_with_index.select do |val, index|
  is_fibonacci?(index)
end
Run Code Online (Sandbox Code Playgroud)

此代码返回:

[["a", 0], ["b", 1], ["c", 2], ["d", 3], ["f", 5], ["i", 8], ["n", 13]]
Run Code Online (Sandbox Code Playgroud)

请帮助我理解我如何仍然遍历数组并评估索引,但只返回元素.

ruby arrays

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

arrays ×1

ruby ×1