2009-12-24 4 views
0

Language: RubyTri d'un tableau en Ruby

J'ai une gamme de produits. Chaque produit a un attribut appelé product_price_name.

[Product.product_price_name = « Tous les prix », Product.product_price_name = « 1 $ à 100 $ »]

Je veux trier ce tableau si le premier résultat est « Tous les prix » et les options suivantes seront fourchettes de prix tels que $ 1 100 $, 200

100- $ $
+0

Vous avez déjà une question pour cela (où vous avez déjà accepté une réponse). S'il vous plaît ne pas diffuser une question de cette façon. – Telemachus

Répondre

4
# some setup 
Product = Struct.new(:product_price_name) 
array = %w{$1-100 $200-1000 All_Prices $100-200}.collect{|each|Product.new(each)} 

# the actual code 
array = array.sort_by { |each| each.product_price_name } 
array.unshift array.pop 
array # => [#<struct Product product_price_name="All_Prices">, #<struct Product product_price_name="$1-100">, #<struct Product product_price_name="$100-200">, #<struct Product product_price_name="$200-1000">] 

Mon Dieu, on ne devrait jamais soumettre le code qui avait jamais couru! Mea culpa.

+0

Je n'ai jamais vu cette méthode auparavant et je ne suis pas vraiment un excellent programmeur. Pouvez-vous s'il vous plaît me donner une copie et le code passé à mettre sur ce tableau [Product.product_price_name = "Tous les prix", Product.product_price_name = "$ 1 à 100 $"]. – s84

+0

oups, mauvaise syntaxe, mon mauvais. C'est 'array.sort_by' et non' array sort_by: '(programmation trop de Pharo aujourd'hui). – akuhn

+0

Et c'était encore plus faux, corrigé maintenant. – akuhn