Ruby Array.keep_if 方法
在上一篇文章中,我们研究了 Array 方法,即 Array.select、Array.reject 和 Array.drop_while,所有这些方法都是非破坏性方法,这意味着它们不会对驻留在数组实例。如果想让上述方法具有破坏性,可以在方法名称后添加 “!”。例如,Array.select!是 Array.select 的破坏性版本。我们还了解了 Array.delete_if 方法,该方法本质上已经具有破坏性。
在本文中,我们将了解 Array 方法 Array.keep_if,它与 delete_if 方法一样具有破坏性。
方法说明:
此方法用于同时从 Array 类的实例中选择元素。此方法与 Array.delete_if 方法正好相反,因为 Array.delete_if 方法从 Array 中删除不满足块内部提供的条件的元素,另一方面 Array.keep_if 方法保留或保存满足内部指定条件的元素方法的块。如果您未在块内指定或提供任何条件,则此方法将从 Array 实例中删除所有元素。
用法:
Array.keep_if{|var|#condition}
参数:此方法不接受任何参数,而是需要一个布尔条件进行操作。
范例1:
=begin
Ruby program to demonstrate Array.keep_if
=end
# array declaration
num = [1,2,3,4,5,6,7,8,9,10,23,11,33,55,66,12]
# user input
puts "Enter the your choice (a)keep even numbers (b) keep odd numbers"
lm = gets.chomp
if lm == 'a'
puts "Even numbers are:"
print num.keep_if { |a| a % 2 ==0 }
elsif lm == 'b'
puts "Odd numbers are:"
print num.keep_if { |a| a % 2 !=0 }
else
puts "Invalid Input"
end
输出
RUN 1: Enter the your choice (a)keep even numbers (b) keep odd numbers a Even numbers are: [2, 4, 6, 8, 10, 66, 12] RUN 2: Enter the your choice (a)keep even numbers (b) keep odd numbers b Odd numbers are: [1, 3, 5, 7, 9, 23, 11, 33, 55]
说明:
在上面的代码中,您可以观察到该方法正在保留满足 Array.keep_if 方法块内提供的条件的所有元素。如果用户要求保留奇数,则输出在 RUN 2 中显示,当用户要求偶数时,输出在 RUN 1 中显示。
范例2:
=begin
Ruby program to demonstrate Array.keep_if
=end
# array declaration
num = [1,2,3,4,5,6,7,8,9,10,23,11,33,55,66,12]
print num.keep_if{|a|}
puts ""
print num
输出
[] []
说明:
在上面的代码中,您可以观察到,如果您没有在方法块内指定任何条件,那么它正在删除或移除 Array 实例中的所有元素。
相关用法
- Ruby Array.reject用法及代码示例
- Ruby Array.repeated_permutation()用法及代码示例
- Ruby Array.index()用法及代码示例
- Ruby Array.pack()用法及代码示例
- Ruby Array.rassoc(obj)用法及代码示例
- Ruby Array.values_at()用法及代码示例
- Ruby Array.each用法及代码示例
- Ruby Array.sort用法及代码示例
- Ruby Array.unshift()用法及代码示例
- Ruby Array.reverse用法及代码示例
- Ruby Array.rotate()用法及代码示例
- Ruby Array.repeated_combination()用法及代码示例
- Ruby Array.replace()用法及代码示例
- Ruby Array.drop_while用法及代码示例
- Ruby Array.sort_by用法及代码示例
- Ruby Array.shift用法及代码示例
- Ruby Array.assoc(obj)用法及代码示例
- Ruby Array.permutation()用法及代码示例
- Ruby Array.join()用法及代码示例
- Ruby Array.delete_if用法及代码示例
注:本文由纯净天空筛选整理自 Array.keep_if Method with Example in Ruby。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。