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

Hash.flatten方法

在本文中,我们将研究Hash.flatten方法。可以借助其名称来预测此方法的工作,但是它并不像看起来那样简单。好吧,我们将在其余内容中借助其语法和程序代码来理解此方法。

方法说明:

此方法是在Ruby库中定义的公共实例方法,特别是针对Hash类。此方法的工作方式是在展平整个哈希对象后返回一个数组对象。这意味着每个键值对都将转换为数组对象,或者可以说它将成为Array对象的单个元素。此方法是一种非破坏性方法,这意味着此方法创建的更改不会影响实际的哈希实例。

语法:

    Hash_object.flatten
    or
    Hash_object.flatten(level)

Argument(s) 需要:

此方法仅接受一个参数,该参数不过是您要对哈希对象进行的展平级别。

范例1:

=begin
  Ruby program to demonstrate flatten method
=end	

hash1={"color"=>"Black","object"=>["car","phone"],"love"=>["mom","friends"],"fruit"=>"Kiwi","vege"=>"potato"}

puts "Hash.flatten implementation"
ary = hash1.flatten
puts "Hash object after flatten: #{ary}"
puts "Self hash object : #{hash1}"

输出结果

Hash.flatten implementation
Hash object after flatten: ["color", "Black", "object", ["car", "phone"], "love", ["mom", "friends"], "fruit", "Kiwi", "vege", "potato"]
Self hash object : {"color"=>"Black", "object"=>["car", "phone"], "love"=>["mom", "friends"], "fruit"=>"Kiwi", "vege"=>"potato"}

说明:

在上面的代码中,您可以观察到我们在Hash.flatten方法的帮助下对哈希对象进行了展平。已经完成了第一级扁平化,其中所有哈希元素现在都成为数组的一部分。您可以看到此方法不会对实际哈希产生任何影响,因为该方法是非破坏性方法的示例之一。

范例2:

=begin
  Ruby program to demonstrate flatten method
=end	

hash1={"color"=>"Black","object"=>["car","phone"],"love"=>["mom","friends"],"fruit"=>"Kiwi","vege"=>"potato"}

puts "Hash.flatten implementation"

puts "Enter the level of flatten"
lvl = gets.chomp.to_i

ary = hash1.flatten(lvl)puts "Hash object after flatten: #{ary}"
puts "Self hash object : #{hash1}"

输出结果

Hash.flatten implementation
Enter the level of flatten
 2
Hash object after flatten: ["color", "Black", "object", "car", "phone", "love", "mom", "friends", "fruit", "Kiwi", "vege", "potato"]
Self hash object : {"color"=>"Black", "object"=>["car", "phone"], "love"=>["mom", "friends"], "fruit"=>"Kiwi", "vege"=>"potato"}

说明:

在上面的代码中,您可以观察到我们在Hash.flatten方法的帮助下对哈希对象进行了展平。已经完成了第二级扁平化,其中所有哈希元素现在都成为数组的一部分。您可以看到此方法不会对实际哈希产生任何影响,因为该方法是非破坏性方法的示例之一。