Ruby 数组排序未正确排序

Ruby 数组排序未正确排序,ruby,arrays,Ruby,Arrays,我对数组排序有问题。我的预期结果是: @list = [ ["2 1/8\"", "23 13/32\"", "stile", "2"], ["2 1/8\"", "11 5/32\"", "rail", "6"], ["2 1/8\"", "7 13/32\"", "stile", "4"] ] 这只是一个例子,因为数组是动态的,数据总是在变化,但有一点是不变的,那就是大多数(如果不是所有的话)单位数字的测量都在开始时结束 下面是我使用的代码: @list = @list.sor

我对数组排序有问题。我的预期结果是:

@list = [
  ["2 1/8\"", "23 13/32\"", "stile", "2"],
  ["2 1/8\"", "11 5/32\"", "rail", "6"],
  ["2 1/8\"", "7 13/32\"", "stile", "4"]
]
这只是一个例子,因为数组是动态的,数据总是在变化,但有一点是不变的,那就是大多数(如果不是所有的话)单位数字的测量都在开始时结束

下面是我使用的代码:

@list = @list.sort {|a,b| b[1]<=>a[1]}    

想知道为什么吗?

如果目标是按每个数组(7、23、11)的第二个值的第一个数值排序,将字符串转换为排序中的整数可能是一个解决方案:

@list = @list.sort {|a,b| b[1].to_i <=> a[1].to_i }

看起来你在按字典顺序排列。预期结果是什么?@Alex,谢谢,但我不知道按字典顺序排列是什么:\@Eric,对不起,我应该更清楚一些,它应该按照第二个元素进行排序,结果…@list=[“2 1/8\”,“23 13/32\”,“stile”,“2”],[“2 1/8\”,“11 5/32\”,“rail”,“6”],[“2 1/8\”,“7 13/32\”,“stile”,“4”]刚刚做了一个快速测试,似乎有效。它甚至似乎也对分数进行排序。谢谢
@list = @list.sort {|a,b| b[1].to_i <=> a[1].to_i }
@list.sort! {|a,b| b[1].to_i <=> a[1].to_i }