在上一篇文章中,我们看到了如何利用Array.select方法来基于块内提供的某些条件来打印Array元素?在本文中,我们将看到如何利用Array.reject方法?Array.reject方法与Array.select方法完全相反。
顾名思义,Array.reject方法用于拒绝Array中的某些元素。如果元素满足块内提供的条件或标准,则不会打印这些元素。此方法是一种非破坏性方法,不会对Array对象的实际值带来任何变化。该方法根据您将在一对括号内提供的某些条件来工作。此方法完全基于您在块内提供的条件。即使您未在块内指定任何条件,此方法也将起作用。如果您没有提供任何拒绝的条件或标准,它将打印所有值。
语法:
Array.reject{|var| #condition}
Parameter(s):
此方法不允许传递任何参数,而是要求一个条件。
范例1:
=begin Ruby program to demonstrate Array.select =end # 数组声明 num = [2,44,2,5,7,83,5,67,12,11,90,78,9] puts "Enter 'a' for Even numbers and 'b' for odd numbers" opt = gets.chomp if opt == 'b' puts "Odd numbers are:" puts num.reject{|num| num%2 == 0 } elsif opt == 'a' puts "Even numbers are:" puts num.reject{|num| num%2 !=0 } else puts "Wrong selection. Input valid option" end
输出结果
RUN 1: Enter 'a' for Even numbers and 'b' for odd numbers a Even numbers are: 2 44 2 12 90 78 RUN 2: Enter 'a' for Even numbers and 'b' for odd numbers b Odd numbers are: 5 7 83 5 67 11 9
说明:
在上面的代码中,您可以观察到我们正在从用户那里获取用户想要输入什么类型的数字作为输入。这是因为我们要在Array.reject方法内部传递某些条件。我们根据用户提供的选项向用户提供响应,并且仅以这种方式使用此方法。它拒绝满足块内提供的条件的元素。
范例2:
=begin Ruby program to demonstrate Array.reject =end # 数组声明 num = [2,44,2,5,7,83,5,67,12,11,90,78,9] puts num.reject{|a|}
输出结果
2 44 2 5 7 83 5 67 12 11 90 78 9
说明:
在上面的输出中,您可以观察到,当您在方法内未指定任何条件时,它仍未引发任何异常,它将打印Array实例中存在的所有元素。这是我们可以区分Array.select和Array.reject的另一点。