我有一系列数字:
a = [1, 2, 3, 90, 4, 5, 6 ..., 10]
我想删除与其邻居“太不相同”的任何项目(例如90
)。
我可以使用map
/ select_with_index
来引用上一个/下一个项目吗?
a.select { |i| i.too_much_different? i.prev, i.next }
答案 0 :(得分:2)
对于这样的事情,我会建议一个常规循环,而不是试图强制它匹配ruby可枚举方法。但是,如果您愿意,可以这样做:
a.reject.with_index do |el, i|
# conditions involving el
# next el is a[i+1]
# previous el is a[i-1]
end