创建一个对整数数组应用操作的Ruby方法

时间:2017-08-31 17:52:37

标签: ruby

编辑:好的,我误解了这个任务。遗憾。

我真的在网上找不到任何其他内容而且我自己也没有。 我想用Ruby中的方法从整数数组中删除奇数条目。但是我在定义方法时只能得到错误。如何让方法理解这一点?

def even
  a=[]
  i=0
  while i<=a.length
    a[i]%2 == 1
        a.delete(a[i])
        i+=i
  end
end
even([1,2,3])

2 个答案:

答案 0 :(得分:2)

您可以简单地使用如下所示的Ruby数组拒绝方法,

arr = [1,2,3,4,5,6,7,8]
arr.reject{|v| v%2 == 1}
# => [2, 4, 6, 8]

答案 1 :(得分:0)

在红宝石中,通常更容易以更实用的方式思考。在您的情况下,您希望遍历元素列表,选择偶数元素。要遍历列表并使用谓词选择元素,请使用select。一个数字已经有一种方法来检查它是否是偶数(even?)。所以解决方案很简单:

[1,2,3].select(&:even?)

返回仅包含偶数的新列表。如果您想要修改列表,请改用select!