Ich habe ein Array von Arrays wie folgt:Sortierung ein Array von Arrays in 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]]
Ich mag würde die gesamte device_array am 4. Elemente sortieren.
Ich habe versucht,
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
ich auch versucht habe:
AllDevicesController.all_devices.sort do | a,b |
a[][4] <=> b[][4]
end
Beide Methoden nicht gearbeitet haben.
Ich war mit dieser als Referenz: http://ariejan.net/2007/01/28/ruby-sort-an-array-of-objects-by-an-attribute/
Ich stelle ich mir etwas rubyish fehlt bin, dass dies wirklich einfach macht.
Ich natürlich das vierte Element des 0. Elements des Device_array weggelassen. Es sollte keine Nullobjekte geben. –
In diesem Fall ist Ihr einziges Problem die Verwendung von 'a [] [4]' anstelle von 'a [4]'. 'a [] [4]' ist keine gültige Ruby-Syntax. –