当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Array.flatten用法及代码示例


Array.flatten 方法

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

方法说明:

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

用法:

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

所需参数:

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

范例1:

=begin
  Ruby program to demonstrate flatten method
=end

# array declaration
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

# array declaration
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

# array declaration
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维的Array,经过1级展平后,现在可以认为是二维的Array实例。



相关用法


注:本文由纯净天空筛选整理自 Array.flatten Method with Example in Ruby。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。