我试图从数组中选择元素:
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)
请帮助我理解我如何仍然遍历数组并评估索引,但只返回元素.