【问题标题】:joining multidimensional array Into pairs Ruby将多维数组加入对Ruby
【发布时间】:2015-01-16 17:55:04
【问题描述】:

对于我正在制作的这个程序,我需要将一些数组连接到一个多维数组中:

数组是什么:

[["2", "2"]["0", "9"]["2", "2"]["2", "7"]["1", "7"]["0", "8"]["0", "1"]
["0", "9"]]

我希望它变成这样:

["22", "09", "22", "27", "17", "08", "01", "09"]

对不起,如果这是一个非常愚蠢的问题,但如果有人可以帮助我,我会很高兴,如果不可能做到这一点,请告诉我。 谢谢。

【问题讨论】:

    标签: ruby arrays multidimensional-array


    【解决方案1】:

    试试这个:

    multi_dimensional_array = [["2", "2"], ["0", "9"], ["2", "2"], ["2", "7"], ["1", "7"], ["0", "8"], ["0", "1"], ["0", "9"]]
    multi_dimensional_array.map(&:join)
    

    map 遍历数组中的条目并返回带有修改条目的数组副本。

    &:join 通过使用Symbol#to_proc 将符号转换为块,将join 发送给迭代的每个成员:您可以阅读它,就好像它展开为:

    ->(entry){ entry.send(:join) }
    

    【讨论】:

    • 我尝试过使用您的代码,但它对我不起作用,我认为我做错了什么,也许您知道。首先它是 1 个大字符串,然后我使用 .split 然后我使用 d_array.each_slice(2) { |a| 将其切片p a } 然后使用您的代码 d_joined_array = d_array_split.map(&:join)
    • @RubyDutch 我只是盲目地复制了您缺少逗号的数组,现在对其进行了修改:)
    • 哦,是的,我明白了,但我仍然有一个问题是它没有结合数组中的东西。我是一个坏红宝石,所以也许我犯了错误
    • 我已经在另一个项目中尝试过,它成功了!非常感谢,我想我在另一个项目中做错了什么
    【解决方案2】:

    一般的模式是:

    list = [["2", "2"],["0", "9"],["2", "2"],["2", "7"],["1", "7"],["0", "8"],["0", "1"],["0", "9"]]
    
    # For each item in the list, transform it...
    list.collect do |entry|
      # ...by joining the bits together into a single string.
      entry.join
    end
    

    【讨论】:

      猜你喜欢
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      相关资源
      最近更新 更多