0

我似乎无法找到一种红宝石方式来改变它

[0, 1, 2, 3]

进入

[0, 0.5, 1, 1.5, 2, 2.5, 3]

例如,根据现有元素应用某些规则插入新元素。

编辑:我问的是一般情况,不一定是 0.5 增量。比如说,当元素不连续时:

[1, 3, 12] => [1, 2, 3, 7.5, 12]

所以这里接受的答案是完美的,谢谢。

4

1 回答 1

4
arr = [0, 1, 2, 3]

def rule(x, y)
  (x + y) / 2.0
end

arr.each_cons(2).flat_map{|x, y| [x, rule(x, y), y]} # => [0, 0.5, 1, 1, 1.5, 2, 2, 2.5, 3]
于 2013-10-14T12:43:48.323 回答