删除 Ruby 中的数组元素

Nurudeen Ibrahim 2023年1月30日 2022年5月18日
  1. 使用 reject 方法删除数组元素
  2. 使用数组减法删除数组元素
  3. 使用 delete 方法删除数组元素
  4. 使用 delete_if 方法删除数组元素
删除 Ruby 中的数组元素

下面列出了在 Ruby 中从数组中删除元素的不同方法。

使用 reject 方法删除数组元素

此方法遍历数组并仅返回与指定条件不匹配的元素。

numbers = [2, 4, 6, 8, 10]
numbers_without_six = numbers.reject { |n| n == 6 }
puts numbers_without_six

输出:

[2, 4, 8, 10]

使用数组减法删除数组元素

可以使用 Ruby 中的减号 - 运算符从另一个数组中减去一个数组。例如,假设 A 和 B 是数组,A - B 取出 B 在 A 中找到的所有元素并返回 A 的剩余元素。

我们可以像下面那样重写上面的例子来使用这个方法。

numbers = [2, 4, 6, 8, 10]
numbers_without_six = numbers - [6]
puts numbers_without_six

输出:

[2, 4, 8, 10]

使用 delete 方法删除数组元素

这将删除一个数组元素,修改原始数组,并返回删除的值。

numbers = [2, 4, 6, 8, 10]
numbers.delete(6)
puts numbers

输出:

[2, 4, 8, 10]

使用 delete_if 方法删除数组元素

还有一个 delete_if 方法可以从数组中删除与条件匹配的元素。这也会改变原始数组。

numbers = [2, 4, 6, 8, 10]
numbers.delete_if { |n| n == 6 }
puts numbers

输出:

[2, 4, 8, 10]

请注意,reject!也是在原地修改数组,并且可以与 delete_if 类似地使用。

numbers = [2, 4, 6, 8, 10]
numbers.reject! { |n| n == 6 }
puts numbers

输出:

[2, 4, 8, 10]

相关文章 - Ruby Array