var users = ["mocca_community", "ban2", "6a", "user_c1", "vad", "vote4music", "xbox_live"];
function sort(a, b) {
return a > b;
}
console.log(
users.sort(sort)
);
演示:http://jsbin.com/Inemiga/2/edit
我在Chrome,IE9,Safari,FireFox和Node中进行了测试。只有FireFox显示正确排序的字符串。是什么原因?
答案 0 :(得分:8)
更改为:
function sort(a, b) {
return a.localeCompare(b);
}
不区分大小写:
function sort(a, b) {
return a.toLocaleLowerCase().localeCompare(b.toLocaleLowerCase());
}
答案 1 :(得分:5)
因为您从自定义搜索功能返回一个布尔值。您需要返回-1
,0
或1
function sort(a, b) {
if (a == b) { return 0; }
else if (a > b) { return 1; }
return -1;
}
答案 2 :(得分:2)
排序方法return 1
如果a
更大,-1
b
更大,0
如果相等。
尝试这种排序方法。
function sort(a, b) {
if (a > b) return 1;
if (a < b) return -1;
return 0;
}