Ruby中带有示例的Array.flatten方法

Array.flatten方法

在本文中,我们将研究Array.flatten方法。大家都必须考虑该方法必须在做一些与展平Array实例有关的事情。它并不像看起来那么简单。好吧,我们将在其余内容中解决这个问题。我们将尝试借助语法并演示程序代码来理解它。

方法说明:

此方法是Public实例方法的示例之一,该方法在Ruby库中为Array类专门定义。此方法用于展平Array实例。此方法通过将Array实例中存在的所有Array包含到self中来返回一维数组的方式工作。此方法可以是破坏性的也可以是非破坏性的。破坏性方法是那些对Array元素有影响的方法,或者您可以说它们所做的更改是永久性的。Array.flatten!是此方法的破坏性版本,而非破坏性方法不会在实际的Array元素中产生任何更改。

语法:

    array_instance.flatten 
    or 
    array_instance.flatten!
    or 
    array_instance.flatten(level)

Argument(s) 需要:

在类似上一种语法的类型中,您需要传递展平级别。您将在程序的帮助下了解它。

范例1:

=begin
  Ruby program to demonstrate flatten method
=end

# 数组声明
array1 = ["Kumar",["Ramesh",["Apple","Pappu"],"Sana","Yogita"],"Satyam","Harish"]

puts "Array flatten implementation."
print array1.flatten

puts ""

puts "Array elements are:"
print array1

输出结果

Array flatten implementation.
["Kumar", "Ramesh", "Apple", "Pappu", "Sana", "Yogita", "Satyam", "Harish"]
Array elements are:
["Kumar", ["Ramesh", ["Apple", "Pappu"], "Sana", "Yogita"], "Satyam", "Harish"]

说明:

在上面的代码中,您可以看到所有子数组都被展平并存储在主数组中,并且它们的元素现在是主数组的直接部分。由于这是非破坏性版本,因此不会对实际的Array元素产生任何影响。

范例2:

=begin
  Ruby program to demonstrate flatten method
=end

# 数组声明
array1 = ["Kumar",["Ramesh",["Apple","Pappu"],"Sana","Yogita"],"Satyam","Harish"]

puts "Array flatten implementation."
print array1.flatten!

puts ""

puts "Array elements are:"
print array1

输出结果

Array flatten implementation.
["Kumar", "Ramesh", "Apple", "Pappu", "Sana", "Yogita", "Satyam", "Harish"]
Array elements are:
["Kumar", "Ramesh", "Apple", "Pappu", "Sana", "Yogita", "Satyam", "Harish"]

说明:

在上面的代码中,您可以看到所有子数组都被展平并存储在主数组中,并且它们的元素现在是主数组的直接部分。由于这是破坏性版本,因此会对实际的Array元素产生影响。

范例3:

=begin
  Ruby program to demonstrate flatten method
=end

# 数组声明
array1 = ["Kumar",["Ramesh",["Apple","Pappu"],"Sana","Yogita"],"Satyam","Harish"]

puts "Array flatten implementation."
puts "Enter the level:"
level = gets.chomp.to_i

print array1.flatten(level)

puts ""

puts "Array elements are:"
print array1

输出结果

Array flatten implementation.
Enter the level:
 1
["Kumar", "Ramesh", ["Apple", "Pappu"], "Sana", "Yogita", "Satyam", "Harish"]
Array elements are:
["Kumar", ["Ramesh", ["Apple", "Pappu"], "Sana", "Yogita"], "Satyam", "Harish"]

说明:

在上面的代码中,您可以观察到我们正在询问用户她想要在Array实例中进行展平的程度。实际的Array是一个3维数组,在将其展平1级后,现在可以将其视为二维Array实例。