J'ai un tableau de tableaux comme ceci:Tri d'un tableau de tableaux en 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]]
Je voudrais trier l'ensemble device_array sur le 4ème élément.
J'ai essayé
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
J'ai aussi essayé:
AllDevicesController.all_devices.sort do | a,b |
a[][4] <=> b[][4]
end
Les deux méthodes ont pas fonctionné.
j'utilisais comme référence: http://ariejan.net/2007/01/28/ruby-sort-an-array-of-objects-by-an-attribute/
J'imagine que je suis absent rubyish quelque chose qui fait vraiment facilement.
J'ai, bien sûr, omis le 4ème élément du 0ème élément du device_array. Il ne devrait pas y avoir d'objets nuls. –
Dans ce cas, votre seul problème est d'utiliser 'a [] [4]' au lieu de 'a [4]'. 'a [] [4]' n'est pas une syntaxe Ruby valide. –