2016-09-08 10 views
0
console.log("str4" > "str16"); // true 

Ich bin durch die obige Aussage wahr geworden. Ich mag die gleichen Strings mit unterschiedlichen Zahlen sortieren, so etwas wie:Strings mit Zahlen vergleichen

str1 
str2 
... 
str9 
str10 
str11 
str12 

Genau wie MySQL dies tun würde, aber JavaScript gibt mir unterschiedliche Ergebnisse. Wie könnte ich damit umgehen? Ich verwende normale Array.sort Methode.

+1

Verwendung Array # sort mit einer Callback-Funktion, und tun Sie Ihre eigene Grunzenarbeit –

Antwort

1

versuchen, diese:

arr = ["str3", "str4", "str2", "str44"] 

arr.sort(function(a,b){ return (a.match(/\d+/)[0] - b.match(/\d+/)[0]) }) 

// output ["str2", "str3", "str4", "str44"] 
+0

natürlich, dass alle Alpha-Abschnitte sind die gleiche übernimmt: p –