Ich versuche, eine Liste von Einheiten nach Länge und dann alphabetisch zu sortieren. Wenn ich alphabetisch sortieren, ich eine Liste der Form erhaltenPaginierte Liste nach Länge und dann alphabetisch in RoR App sortieren
Troop 1
Troop 11
Troop 111
Troop 1111
Troop 5
Troop 55
Troop 555
Troop 7
Troop 77
Troop 777
Stattdessen würde Ich mag
Troop 1
Troop 5
Troop 7
Troop 11
Troop 55
Troop 77
Troop 111
Troop 555
Troop 777
Troop 1111
Ich dachte, dass eine einfache Art auf Namenslänge basiert tun und dann alphabetisch den Trick tun würde, nennen , aber ich kann keine Längen sortieren, um zu arbeiten. Ich habe ein paar Variationen des Formulars
vergeblich versucht. Es kommt mir nun in den Sinn, dass ich nach Platz spalten und nach dem zweiten Wert sortieren muss (d. H. Nach der Zahl, die ich gepackt habe), aber ich weiß auch nicht, wie ich das machen soll. Jede Hilfe würde sehr geschätzt werden!
Arbeitete wie ein Charme. Danke für die Hilfe! – mjswartz
Eigentlich habe ich etwas interessantes gefunden, dem du vielleicht helfen kannst. Wenn ich 'Crew 123' zur Liste hinzufüge, wird es zwischen 'Truppe 7' und 'Truppe 11' gesetzt. Wäre es möglich, den Platz zu teilen und alphabetisch nach dem ersten Element im geteilten Array und numerisch nach dem zweiten Element im geteilten Array zu sortieren? – mjswartz
'.sort {| x, y | x = x.split (''); y = y.split (''); x [0] == y [0]? x [1] <=> y [1]: x [0] <=> y [0]} 'wahrscheinlich – Ven