Ruby Array.drop_while 方法
在上一篇文章中,我们研究了 Array.select 和 Array.reject 方法,它们根据特定条件向用户提供输出。方法 Array.drop_while 也是一种非破坏性方法。
方法说明:
Array.drop_while 方法的用法原理类似于循环。作为方法,它本身包含"while"这个词,这让我们认为这个方法与while循环有关。操作与while循环正好相反。虽然,while 循环在处理事物时一直工作,直到条件没有被篡改,Array.drop_while 方法会丢弃或删除元素,直到它找不到块内指定的元素为止。如果在方法块内定义的 Array 实例中找不到元素,它将打印每个元素。如果指定的元素位于 Array 实例的两个元素之间,那么它将从最大的一个开始打印。在这种情况下,此方法不会通过异常。它只是删除元素,直到找不到定义的元素。
用法:
Array.drop_while{|var| #condition}
参数:此方法不接受任何参数,而是在块内需要布尔条件。
范例1:
=begin
Ruby program to demonstrate Array.drop_while
=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 element after which you want to see the result"
lm = gets.chomp.to_i
flag = false
num.each {|nm|
if nm == lm
flag = true
end
}
if flag == true
puts "Elements after #{lm} are:"
puts num.drop_while { |a| a < lm }
else
puts "Element not found"
end
输出
Enter the element after which you want to see the result 5 Elements after 5 are: 5 6 7 8 9 10 23 11 33 55 66 12
说明:
在上面的代码中,可以看到这个方法需要一个有序的元素数组。它打印了位于元素 10 之后的所有元素。在这里,首先,我们在 Array.each 的帮助下检查了该元素是否存在于 Array 中,然后我们进行了进一步的处理。
范例2:
=begin
Ruby program to demonstrate Array.drop_while
=end
# array declaration
num = [1,2,3,4,5,6,7,8,9,10,23,11,33,55,66,12]
print num.drop_while{|a|}
输出
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 23, 11, 33, 55, 66, 12]
说明:
在上面的代码中,您可以观察到,当您没有在方法中指定任何条件时,它会打印 Array 对象的每个元素。
相关用法
- Ruby Array.delete_if用法及代码示例
- 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.sort_by用法及代码示例
- Ruby Array.shift用法及代码示例
- Ruby Array.assoc(obj)用法及代码示例
- Ruby Array.permutation()用法及代码示例
- Ruby Array.join()用法及代码示例
- Ruby Array.uniq用法及代码示例
注:本文由纯净天空筛选整理自 Array.drop_while Method with Example in Ruby。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。