TL; DR:我是Ruby的新手,需要有关Enumerable方法的帮助以及如何使用它们。
我正在构建一系列测试信息数组,如下所示:
[[ "Run #", "Server", "Test", "OS", "Browser", "Result" ],
[ "1", "bibble", "perf_test", "Windows 8", "firefox 33", "failed"]]
我正在尝试编写一个基本的统计信息输出(按结果和其他方面排序,特别是这样,人们很明显,例如,所有的firefox测试都失败了,或者服务器bibble上的所有测试都失败了。 )从我可以掌握的,可枚举操作将允许我这样做,但我找不到明确的例子(如,LI5清楚)如何使用这些方法的例子。
所以我的问题是 - 在至少3x3数组数组上使用Enumerable方法的最简单的例子是什么?
答案 0 :(得分:3)
我建议您使用与数组数组不同的数据结构。您可以使用结构,自定义类,甚至只使用哈希数组。这为您提供了巨大的可读性和可查询性以及轻微的性能提升。
这是哈希数组的一个例子:
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/}