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


Ruby Hash.flatten用法及代码示例


本文简要介绍ruby语言中 Hash.flatten 的用法。

用法

flatten → new_array
flatten(level) → new_array

返回一个新的 Array 对象,它是 self 的一维展平。

默认情况下,嵌套数组不会展平:

h = {foo: 0, bar: [:bat, 3], baz: 2}
h.flatten # => [:foo, 0, :bar, [:bat, 3], :baz, 2]

从整数参数 level 获取递归展平的深度:

h = {foo: 0, bar: [:bat, [:baz, [:bat, ]]]}
h.flatten(1) # => [:foo, 0, :bar, [:bat, [:baz, [:bat]]]]
h.flatten(2) # => [:foo, 0, :bar, :bat, [:baz, [:bat]]]
h.flatten(3) # => [:foo, 0, :bar, :bat, :baz, [:bat]]
h.flatten(4) # => [:foo, 0, :bar, :bat, :baz, :bat]

level 为负数时,展平所有嵌套数组:

h = {foo: 0, bar: [:bat, [:baz, [:bat, ]]]}
h.flatten(-1) # => [:foo, 0, :bar, :bat, :baz, :bat]
h.flatten(-2) # => [:foo, 0, :bar, :bat, :baz, :bat]

level 为零时,返回等效于 to_a

h = {foo: 0, bar: [:bat, 3], baz: 2}
h.flatten(0) # => [[:foo, 0], [:bar, [:bat, 3]], [:baz, 2]]
h.flatten(0) == h.to_a # => true

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Hash.flatten。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。