console.log("str4" > "str16"); // true


我从上面的陈述中得到了证实。我想用不同的数字对相同的字符串进行排序,例如:

str1
str2
...
str9
str10
str11
str12


就像MySQL会这样做一样,但是javascript给了我不同的结果。我该如何处理?我使用普通的Array.sort方法。

最佳答案

尝试这个:

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

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

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

09-28 05:37