Javascript 然后按字母顺序按大小写排序

Javascript 然后按字母顺序按大小写排序,javascript,arrays,sorting,Javascript,Arrays,Sorting,如何按字母顺序然后按大小写对字符串数组进行排序 输入示例: ["A","d","B","a","D","c","C","b"] 期望输出: ["A","a","B","b","C","c","D","d"] 您可以将Array#sort与回调函数一起使用,该回调函数首先对大小写进行不敏感的比较,如果第一次比较被认为相等,则对大小写进行敏感的比较 ["A","d","B","a","D","c","C","b"].sort(function (A, B) { var a

如何按字母顺序然后按大小写对字符串数组进行排序

输入示例:

    ["A","d","B","a","D","c","C","b"]
期望输出:

    ["A","a","B","b","C","c","D","d"]
您可以将Array#sort与回调函数一起使用,该回调函数首先对大小写进行不敏感的比较,如果第一次比较被认为相等,则对大小写进行敏感的比较

["A","d","B","a","D","c","C","b"].sort(function (A, B) {
    var a = A.toLowerCase(), b = B.toLowerCase();
    if (a < b) {
        return -1;
    } else if (a > b) {
        return 1;
    } else if (A < B) {
        return -1;
    } else if (A > B) {
        return 1;
    } else {
        return 0;
    }
});
[“A”、“d”、“B”、“A”、“d”、“c”、“c”、“B”]排序(函数A、B){
变量a=a.toLowerCase(),b=b.toLowerCase();
if(ab){
返回1;
}否则如果(AB){
返回1;
}否则{
返回0;
}
});

这里有一个单行程序,可能比Jaromanda的版本效率低,但代码更少:


[“A”、“d”、“B”、“A”、“d”、“c”、“c”、“B”]排序((A,B)=>String.localeCompare(…(A.toLowerCase()==B.toLowerCase()?[B,A]:[A.toLowerCase(),B.toLowerCase()))
您可以先比较小写字母,然后再向前移动大写值

var数组=[“A”、“d”、“B”、“A”、“d”、“c”、“c”、“B”];
array.sort(函数(a,b){
var aa=a.toLowerCase(),
bb=b.toLowerCase();
返回aa.localeCompare(bb)|(a==aa)-(b==bb);
});
console.log(数组)
您可以使用Array#sort和回调函数,该函数首先不区分大小写进行比较,如果第一次比较被认为是相等的,那么再区分大小写进行比较。请看一看。