當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Array.delete_if用法及代碼示例


Ruby Array.delete_if 方法

在上一篇文章中,我們研究了 Array 方法,即 Array.select、Array.reject 和 Array.drop_While,所有這些方法都是非破壞性方法,這意味著它們不會對駐留在數組實例。如果你想讓上麵的方法具有破壞性,你可以在方法名稱後添加一個"!"。例如,Array.select!是 Array.select 的破壞性版本。

在本文中,我們將了解本質上已經具有破壞性的 Array 方法 Array.delete_if。

方法說明:

這種方法造成的變化總是永久性的,因為它是一種破壞性方法。此方法的用法方式是,如果它找到不滿足該方法塊內指定的布爾條件的元素,則它會從 Array 實例中刪除該元素。如果沒有找到方法塊內指定的布爾條件,它不會刪除任何元素。

用法:

    Array.delete_if{|var|#condition}

參數(s):此方法不接受任何參數,而是需要一個布爾條件進行操作。

範例1:

=begin
    Ruby program to demonstrate Array.delete_if
=end

# array declaration
num = [1,2,3,4,5,6,7,8,9,10,23,11,33,55,66,12]

# input
puts "Enter the your choice (a)delete odd numbers (b) delete even numbers"
lm = gets.chomp

if lm == 'a'
    puts "Even numbers are:"
    puts num.delete_if { |a| a % 2 !=0 }
elsif lm == 'b'
    puts "Odd numbers are:"
    puts num.delete_if { |a| a % 2 ==0 }
else
	puts "Invalid Input"
end

輸出

RUN 1:
Enter the your choice (a)delete odd numbers (b) delete even numbers
a
Even numbers are:
2
4
6
8
10
66
12

RUN 2:
Enter the your choice (a)delete odd numbers (b) delete even numbers
b
Odd numbers are:
1
3
5
7
9
23
11
33
55

說明:

在上麵的代碼中,您可以觀察到該方法正在刪除所有滿足 Array.delete_if 方法塊內提供的條件的元素。如果用戶要求刪除奇數,則輸出顯示在 RUN2 中,當用戶要求刪除偶數時,輸出顯示在 RUN1 中。

範例2:

=begin
    Ruby program to demonstrate Array.delete_if
=end
# array declaration
num = [1,2,3,4,5,6,7,8,9,10,23,11,33,55,66,12]

print num.delete_if{|a|}
puts ""
print num

輸出

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 23, 11, 33, 55, 66, 12]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 23, 11, 33, 55, 66, 12]

說明:

在上麵的代碼中,您可以觀察到,如果您沒有在方法塊內指定任何條件,那麽它不會從 Array 實例中刪除或移除任何元素。



相關用法


注:本文由純淨天空篩選整理自 Array.delete_if Method with Example in Ruby。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。