ruby - 嵌套数组的功能展开

标签 ruby functional-programming ruby-1.9

给定一个包含其他嵌套数组的数组,我想创建一个仅包含第一个数组中的元素的数组。例如 [["1", "2"], "3", [["4"]]] 应该计算为 ["1", "2", "3", "4"]。

我已经成功地创建了一个有效的方法:

@@unwrapped_array = []  
def unwrap_nested_array(array)  
  if array.respond_to?('each')  
    array.each { |elem| unwrap_nested_array(elem) }  
  else  
    @@unwrapped_array.push array  
  end  
end

但我还没弄清楚如何消除@@unwrapped_array 变量。

最佳答案

[["1", "2"], "3", [["4"]]].flatten
# => ["1", "2", "3", "4"]

关于ruby - 嵌套数组的功能展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3153173/

相关文章:

Ruby 嵌套哈希合并

ruby - 在 Ruby CSV 中,如何将空白 , 而不是 ,""写入文件?

ruby - 多线程循环

Haskell 字符串分词器函数

typescript - 有没有更好的方法在 TypeScript 中管道 Type Guard 函数?

java - 为什么 java.util.function 不为所有原始类型定义专门的功能接口(interface)?

ruby-on-rails - 为什么即使使用 mysql2 gem,ActiveRecord 也会返回编码为 ASCII-8BIT 的字段?

ruby-on-rails - 无法激活 concurrent-ruby-ext-1.1.3,因为 concurrent-ruby-1.1.4 与 concurrent-ruby (= 1.1.3) 冲突 (Gem::ConflictError)

ruby - 如何使用 CarrierWave 从 S3 获取真实文件

ruby - 使用 HashMap 测试顺序