删除 Ruby 中的数组元素
Nurudeen Ibrahim
2023年1月30日
2022年5月18日
下面列出了在 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]