當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。