📜  红宝石 |数组拒绝!()函数(1)

📅  最后修改于: 2023-12-03 14:56:47.833000             🧑  作者: Mango

红宝石 | 数组拒绝!()函数

在 Ruby 中,我们可以使用数组拒绝方法 reject 处理数组。

什么是 reject 方法?

reject 方法是 Enumerable 模块中的一个方法,它可以对数组中的每一个元素应用一个块,然后返回一个新的数组,其中包含了所有块返回值为 false 的元素。

举个例子,如果有一个数组 a = [1, 2, 3, 4, 5],使用 reject 方法将其中所有偶数去掉,可以这样写:

b = a.reject { |x| x % 2 == 0 }
# => [1, 3, 5]
拒绝数组中的空值

经常会出现数组中有空值的情况,我们可以使用 reject 方法来将这些空值去掉。下面是一个例子:

a = [1, 2, nil, 3, nil, 4, 5]
b = a.reject(&:nil?)
# => [1, 2, 3, 4, 5]

这里使用了 &:nil? 的简写方式,它等价于 { |x| x.nil? }。可以看到,使用 reject 方法可以轻松地将数组中的空值去掉。

将数组中的元素转换为布尔值

在很多情况下,我们需要将数组中的元素转换为布尔值后再进行处理。例如,如果有一个数组 a,我们需要将其中所有小于等于 10 的元素取反并返回。

a = [1, 5, 10, 15, 20]
b = a.reject { |x| x <= 10 }
# => [15, 20]

现在我们需要将 b 中所有元素取反,变成布尔值。我们可以这样写:

c = b.map { |x| !x }
# => [false, false]

然后再使用 reject 方法去掉为真的元素即可。

d = c.reject(&:itself)
# => []

如上所示,我们首先将 b 中的元素取反生成一个新的数组 c,然后使用 reject 方法去掉为真的元素为空的数组。这样我们就可以实现将数组中的元素转换为布尔值后再进行处理。

总结

本文介绍了 Ruby 中的数组拒绝方法 reject,包括如何使用 reject 方法拒绝数组中的空值以及将数组中的元素转换为布尔值后再进行处理。如果你是 Ruby 开发者,相信本文可以帮助你更好地理解和使用 reject 方法。