Ruby 可枚举方法示例

Ruby enumerable method example

TL;DR:我是 Ruby 的新手,需要有关 Enumerable 方法以及如何使用它们的帮助。

我正在构建一个测试信息数组的数组,其结构如下:

[[ "Run #", "Server", "Test", "OS", "Browser", "Result" ],
 [ "1", "bibble", "perf_test", "Windows 8", "firefox 33", "failed"]]

我正在尝试编写一个基本的统计输出(按结果和其他方面排序,特别是为了让人们立即明白是所有 firefox 测试都失败了,还是服务器 bibble 上的所有测试都失败了失败。)据我所知,可枚举操作允许我这样做,但我找不到关于如何使用这些方法的明确示例(如 LI5 clear)示例。

所以我的问题是——在至少一个 3x3 数组数组上使用 Enumerable 方法的最简单示例是什么?

我建议您使用与数组数组不同的数据结构。您可以使用结构、自定义 class,甚至只是一个哈希数组。这为您提供了巨大的可读性和可查询性优势,同时也带来了轻微的性能提升。

这是一个散列数组的示例:

  runs =
    [{"Run #"  =>"1",
      "Server" =>"bibble",
      "Test"   =>"perf_test",
      "OS"     =>"Windows 8",
      "Browser"=>"firefox 33",
      "Result" =>"failed"
     },
     {"Run #"  =>2,
      "Server" =>"bibble",
      "Test"   =>"perf_test",
      "OS"     =>"Linux",
      "Browser"=>"firefox 26",
      "Result" =>"failed"
     }]

顺便说一下,我是从你的数组中创建它的,就像这样:a.drop(1).map {|x| a.first.zip(x).to_h}

一旦有了,就可以使用Enumerable方法进行查询select。要查找所有失败的 Firefox 测试:

runs.select{|r| r["Result"]=="failed"}.select{|r| r["Browser"]=~/firefox/}