您的问题没有得到很好的解释,但作为您想要的快速猜测,我建议您查看Array.group_by
,这是 Enumerable 的一部分:
ary = [
%w[3.0.1.2 TOTAL Pass],
%w[3.0.1.3 TOTAL Pass],
%w[3.4.0.1 8K Fail],
%w[3.5.4.3 9K Fail],
%w[3.5.0.9 TOTAL Fail],
]
ary.group_by{ |a| a.last }
它返回一个哈希,键是子数组中最后一个元素的两个不同值:
{
"Pass" => [
[0] [
[0] "3.0.1.2",
[1] "TOTAL",
[2] "Pass"
],
[1] [
[0] "3.0.1.3",
[1] "TOTAL",
[2] "Pass"
]
],
"Fail" => [
[0] [
[0] "3.4.0.1",
[1] "8K",
[2] "Fail"
],
[1] [
[0] "3.5.4.3",
[1] "9K",
[2] "Fail"
],
[2] [
[0] "3.5.0.9",
[1] "TOTAL",
[2] "Fail"
]
]
}
访问其中一个很容易:
ary.group_by{ |a| a.last }['Pass']
[
[0] [
[0] "3.0.1.2",
[1] "TOTAL",
[2] "Pass"
],
[1] [
[0] "3.0.1.3",
[1] "TOTAL",
[2] "Pass"
]
]
或者:
ary.group_by{ |a| a.last }['Fail']
[
[0] [
[0] "3.4.0.1",
[1] "8K",
[2] "Fail"
],
[1] [
[0] "3.5.4.3",
[1] "9K",
[2] "Fail"
],
[2] [
[0] "3.5.0.9",
[1] "TOTAL",
[2] "Fail"
]
]