Array.combination()方法和Ruby中的示例

Ruby数组。combination()方法

在上一篇文章中,我们看到了如何使用Array.collect方法。Array.collect方法与Array.map方法非常相似,因为这两种方法都用于在Array实例中创建一些修改。我们还学习了Array.collect方法的破坏性和非破坏性版本。在本文中,我们将看到如何实现Array.combination方法?我们将借助其语法和程序代码来理解它们。

方法说明:

该方法是一个公共实例方法,为Ruby库中的Array类定义。该方法的工作方式是从Array实例中获取元素,并根据方法中传递的数字进行组合,然后返回Array实例本身。此方法不能保证所产生元素的顺序。使用块或数组调用此方法,并使用.to_a方法将结果转换为Array实例。

如果您不提供任何块,则枚举器本身将返回。

语法:

    combination(n) { |c| block }

Argument(s):

此方法仅需要一个参数。此参数确定Array实例的元素可能组合的数量。

范例1:

=begin
  Ruby program to demonstrate combination method
=end

# 数组
a = [1, 2, 3, 4]

print a.combination(1).to_a  
puts ""

print a.combination(2).to_a
puts ""  

print a.combination(3).to_a  
puts ""

print a.combination(4).to_a  
puts ""

print a.combination(0).to_a  
puts ""

print a.combination(5).to_a

输出结果

[[1], [2], [3], [4]]
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
[[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]]
[[1, 2, 3, 4]]
[[]]
[]

说明:

在上面的代码中,您可以观察到此方法用于创建Array元素的组合。根据在方法内部传递的参数创建组合。一切顺利,直到参数4通过为止,因为数组中存在4个元素。传递数字0时,它创建了一个空的Array实例,或者可以说返回了一个空的Array;传递数字5时,则返回了一个空的Array,因为该数组中不存在五个元素实例。

范例2:

=begin
  Ruby program to demonstrate combination method
=end

# 数组 
a = ["Sangita", "Babita", "Rashmi"]

print a.combination(1).to_a  
puts ""

print a.combination(2).to_a
puts ""  

print a.combination(3).to_a  
puts ""

print a.combination(4).to_a  
puts ""

print a.combination(0).to_a  
puts ""

print a.combination(5).to_a

输出结果

[["Sangita"], ["Babita"], ["Rashmi"]]
[["Sangita", "Babita"], ["Sangita", "Rashmi"], ["Babita", "Rashmi"]]
[["Sangita", "Babita", "Rashmi"]]
[]
[[]]
[]

说明:

在上面的示例中,您可以观察到该方法也适用于String Array实例。此方法在组合元素后返回元素。