刪除 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]