有没有办法用`map`或`select`引用其他元素?

时间:2016-04-09 00:57:31

标签: arrays ruby

我有一系列数字:

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 }

1 个答案:

答案 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