Ich würde wirklich gerne ohne Affe-Patching damit umgehen, aber ich konnte noch keine andere Option finden.Wie kann ich nach verschiedenen Bedingungen mit verschiedenen Bestellungen sortieren?
Ich habe ein Array (in Ruby), dass ich nach mehreren Bedingungen sortieren muss. Ich weiß, wie man die Sortiermethode verwendet, und ich habe den Trick beim Sortieren mit einem Array von Optionen verwendet, um nach mehreren Bedingungen zu sortieren. In diesem Fall brauche ich jedoch die erste Bedingung, um aufsteigend zu sortieren, und die zweite, um absteigend zu sortieren. Zum Beispiel:
ordered_list = [[1, 2], [1, 1], [2, 1]]
Irgendwelche Vorschläge?
Edit: Gerade realisierte ich sollte erwähnen, dass ich den ersten und zweiten Wert nicht leicht vergleichen kann (ich arbeite tatsächlich mit Objektattributen hier). So für ein einfaches Beispiel ist es mehr wie:
ordered_list = [[1, "b"], [1, "a"], [2, "a"]]
Ihr modifiziertes Beispiel kann genauso behandelt werden wie das erste, das Sie gepostet haben. Der Operator <=> funktioniert auf jedem Objekt auf die gleiche Weise (in Ihrem Fall können Integer und String-Objekte beide mit <=> verglichen werden) –
Richtig, nur gedacht, ich sollte es erwähnen, anstatt das Problem zu vereinfachen. –