我似乎无法找到改变这个
的红宝石方式[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]
所以接受的答案在这里是完美的,谢谢。
答案 0 :(得分: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]