@@Romero:
nuqneH
out.sort( sort );
Ich glaube nicht, dass es eine gute Idee ist, die Funktion wie die Methode "sort" zu benennen. Sie kann auch durchaus anonym bleiben:
out.sort(function (a, b) { … });
Geht es über substr.( ??,??), so dass ich sage, dass er den kleinen Buchstaben als Kennung nehmen soll?
Ja, aber du nur ein Zeichen (das 18. von 0 beginnend) haben willst, tut es auch [ref:self812;javascript/objekte/string.htm#char_at@title=charAt](18)
.
Wenn das 18. Zeichen von zwei Strings unterschiedlich ist, sortierst du nach ebendiesem in umgekehrter Reihenfolge (s vor k vor b). Wenn zwei Strings im 18. Zeichen übereinstimmen, sortierst du sie alphanumerisch:
out.sort(function (a, b)
{
if (a.charAt(18) == b.charAt(18)) return (a > b);
else return (a.charAt(18) < b.charAt(18));
});
Oder http://de.selfhtml.org/javascript/sprache/bedingt.htm#entweder_oder@title=kürzer geschrieben:
out.sort(function (a, b)
{
return (a.charAt(18) == b.charAt(18)) ? (a > b) : (a.charAt(18) < b.charAt(18));
});
Zweimal a.charAt(18)
und b.charAt(18)
ist natürlich nicht elegant. Und auch bei Verwendung von [ref:self812;javascript/objekte/string.htm#char_code_at@title=charCodeAt]()
und ||
-Operator auch nicht nötig:
out.sort(function (a, b)
{
return b.charCodeAt(18) - a.charCodeAt(18) || a > b;
});
Qapla'
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
(Mark Twain)