【发布时间】:2017-09-28 19:53:36
【问题描述】:
我必须对此进行排序
ary = [[5, "e", "2"], [2, "r", "="], [2, "y", "2"], [2, "h", "="]]
获得:
# => [[5, "e", "2"], [2, "y", "2"], [2, "h", "="], [2, "r", "="]]
如果最后一个元素(索引 2)等于“=”,则它必须在具有相同第一个元素的数组之后,即使字母在前面。 像这样:
ary.each_with_index do |array, index|
if ary[index][2] == "=" && ary[index][0] == ary[index +1][2]
a = ary[index]
b = ary[index +1]
ary[index] = b
ary[index+1] = a
end
end
【问题讨论】:
-
查看带有“=”的元素,是否要对第一个元素进行降序排序?当有关系时,按第二个元素的升序排序?没有
"="的元素也一样?ary = [[2, "e", "2"], [2, "e", "10"]]呢?请通过编辑(而不是发表评论)来澄清。