在本文中,我们将研究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实例。