Javascript case-instive排序与js数组

Javascript case-instive排序与js数组,javascript,sorting,Javascript,Sorting,我今天写了这篇文章,它运行得很好,但是,我注意到在排序中优先使用大写字母。。。如何在保留原始字符串的同时对这个不区分大小写的字符串进行排序 // original data var data = 'keyword,another,test,546,Hello'; //if keywords then split them by comma into an array var keyArray = new Array(); keyArray = data.split(","); // sort

我今天写了这篇文章,它运行得很好,但是,我注意到在排序中优先使用大写字母。。。如何在保留原始字符串的同时对这个不区分大小写的字符串进行排序

// original data
var data = 'keyword,another,test,546,Hello';

//if keywords then split them by comma into an array
var keyArray = new Array();
keyArray = data.split(",");

// sort the new array alpha
keyArray.sort();

// now output as nice display
var keyOut = '';
var keyLength = keyArray.length;
for (var i = 0; i < keyLength; i++) {
    //create output
    var keyOut = keyOut.concat('<span class="label label-default">'+keyArray[i]+'</span> ');
}

return keyOut;

您可以这样做:

// original data
var data = 'keyword,another,test,546,Hello';

//if keywords then split them by comma into an array
var keyArray = new Array();
keyArray = data.split(",");

// sort the new array
keyArray.sort(function(a, b) {
        var textA = a.toUpperCase();
        var textB = b.toUpperCase();
        return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
    });

// now output as nice display
var keyOut = '';
var keyLength = keyArray.length;
for (var i = 0; i < keyLength; i++) {
    //create output
    var keyOut = keyOut.concat('<span class="label label-default">'+keyArray[i]+'</span> ');
}

return keyOut;
//原始数据
变量数据='关键字,另一个,测试,546,你好';
//如果是关键字,则用逗号将它们拆分为一个数组
var keyArray=新数组();
keyArray=data.split(“,”);
//对新数组进行排序
keyArray.sort(函数(a,b){
var textA=a.toUpperCase();
var textB=b.toUpperCase();
返回(textAtextB)?1:0;
});
//现在输出为漂亮的显示器
var-keyOut='';
var keyLength=keyArray.length;
对于(变量i=0;i
如果我说的没错,您可以为
排序提供一个自定义排序函数:
.sort(函数(a,b){返回a.toLowerCase()
刚刚找到了一个示例,它似乎可以按预期工作。。。我编辑了我的操作。谢谢。我相信
localeCompare
比字符串比较慢得多。但在一个小数据集上,这可能并不重要。
// original data
var data = 'keyword,another,test,546,Hello';

//if keywords then split them by comma into an array
var keyArray = new Array();
keyArray = data.split(",");

// sort the new array
keyArray.sort(function(a, b) {
        var textA = a.toUpperCase();
        var textB = b.toUpperCase();
        return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
    });

// now output as nice display
var keyOut = '';
var keyLength = keyArray.length;
for (var i = 0; i < keyLength; i++) {
    //create output
    var keyOut = keyOut.concat('<span class="label label-default">'+keyArray[i]+'</span> ');
}

return keyOut;