【问题标题】:Like the .assoc method when working with multidimensional arrays in Ruby就像在 Ruby 中处理多维数组时的 .assoc 方法一样
【发布时间】:2015-11-19 23:08:27
【问题描述】:

我陷入了多维数组的困境。我正在寻找一种简单的方法来执行以下操作:

我有一个这样的多维数组:

multi_a = [[20, "John"], ["27", "Michael"], [37, "Annie"], [20, "James"], [98, "Roberta"], [20 , "安德烈亚"]]

我要全部退货

我知道 multi_a.assoc(20) 会返回 [20, "John"]

我希望它返回 [[20, "John"], [20, "James"], [20, "Andrea"]

谢谢大家

p.s 我没有把它变成哈希是有正当理由的,它与排名有关......

【问题讨论】:

    标签: arrays ruby multidimensional-array


    【解决方案1】:

    assoc 将返回第一个匹配的或 nil。您可以编写一个小块来为您处理此逻辑。这应该工作multi_a.select { |a| a.include? 20 }

    例如:

    multi_a = [[20, "John"], ["27", "Michael"], [37, "Annie"], [20, "James"], [98, "Roberta"], [20, "Andrea"]]
    multi_a.select { |a| a.include? 20 }
    
    => [[20, "John"], [20, "James"], [20, "Andrea"]]
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      您需要遍历整个数组以查找所有匹配项。你刚刚得到了第一场比赛。

      来自 ruby​​-doc.org,关于“assoc”:

      搜索一个数组,其元素也是比较 obj 的数组 每个包含数组的第一个元素使用 obj.==.

      返回匹配的第一个包含的数组(即第一个 关联数组),如果没有找到匹配项,则返回 nil。

      取自this link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-21
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多