我有陣列的像這樣的數組:排序數組的數組中的Ruby
irb(main):028:0> device_array
=> [["name1", "type1", ["A", "N", "N"], ["Attribute", "device_attribute"], 9], ["name2","type2", ["A", "N", "N"], ["Attribute", "device_attribute"], 7]]
我想的第四元件上的整個device_array排序。
我已經試過
AllDevicesController.all_devices.sort do | a,b |
for i in 0..(AllDevicesController.all_devices.length - 1) do
a[i][4] <=> b[i][4]
end
end
我也試過:
AllDevicesController.all_devices.sort do | a,b |
a[][4] <=> b[][4]
end
這兩種方法都沒有奏效。
我用這個作爲參考: http://ariejan.net/2007/01/28/ruby-sort-an-array-of-objects-by-an-attribute/
我想象我失去了一些東西rubyish使這很容易。
當然,我忽略了device_array的第0個元素的第4個元素。不應該有任何零對象。 – 2009-07-28 15:04:03
在這種情況下,您唯一的問題是使用'a [] [4]'而不是'a [4]'。 'a [] [4]'不是有效的Ruby語法。 – 2009-07-28 15:09:14