刪除 Ruby 中的陣列元素

Nurudeen Ibrahim 2023年1月30日
  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