Javascript 在Chrome浏览器中排序字符串时如何使用localeCompare?
例如,Javascript 在Chrome浏览器中排序字符串时如何使用localeCompare?,javascript,sorting,Javascript,Sorting,例如,chineseName.sort((函数(a,b){返回a.localeCompare(b)})) javascript函数localeCompare在IE和firefox中运行良好,但在Chrome中不起作用。 有人知道如何使代码与Chrome兼容吗?我刚刚搜索了整个www以找到答案,但遗憾的是什么都没有。。。所以我制定了自己的代码。这是丹麦字母,所以对你来说可能不太值钱,但也许有人会来寻找答案。这是我对一个问题的第一个答案,所以要温柔 convert函数:convert函数用于将“do
chineseName.sort((函数(a,b){返回a.localeCompare(b)}))代码>
javascript函数localeCompare在IE和firefox中运行良好,但在Chrome中不起作用。
有人知道如何使代码与Chrome兼容吗?我刚刚搜索了整个www以找到答案,但遗憾的是什么都没有。。。所以我制定了自己的代码。这是丹麦字母,所以对你来说可能不太值钱,但也许有人会来寻找答案。这是我对一个问题的第一个答案,所以要温柔
convert函数:convert函数用于将“double-a”(丹麦语)[aa]转换为丹麦语字母[å]。这将使以后比较字符更容易
danishCompareCharacter函数:此函数是实际的比较函数。它用于特定的丹麦字母“æ”、“ø”和“å”,它们位于丹麦字母表的末尾
danishCompareString函数:它是javascript排序函数中用作参数的自定义排序函数
function convert(stringToConvert)
{
var returnString = new String();
var tempLetter;
for (var j = 0; j < stringToConvert.length; j++)
{
if (stringToConvert.toLowerCase()[j] == 'a' && stringToConvert.toLowerCase()[j + 1] == 'a')
{
tempLetter = 'å';
j++;
} else
{
tempLetter = stringToConvert.toLowerCase()[j];
}
returnString = returnString + tempLetter;
}
return returnString;
}
function danishCompareCharacter(firstCharacter, secondCharacter) {
if ((firstCharacter == 'æ') || (firstCharacter == 'ø') || (firstCharacter == 'å')) {
if (secondCharacter == 'æ' || secondCharacter == 'ø' || secondCharacter == 'å') {
if (firstCharacter == secondCharacter) {
return 0;
}
if ((firstCharacter == 'æ') || secondCharacter == 'å')
{
return -1;
}
if ((firstCharacter == 'å') || secondCharacter == 'æ') {
return 1;
}
}
return 1;
}
if (secondCharacter == 'æ' || secondCharacter == 'ø' || secondCharacter == 'å') {
return -1;
}
if(firstCharacter==secondCharacter){
return 0;}
if( firstCharacter < secondCharacter)
{
return -1;
}
return 1;
}
function danishCompareString(a, b)
{
var result = 0;
var length = b.length;
if (a.length < b.length)
{
length = a.length;
}
for (var i = 0; i < length; i++) {
result = danishCompareCharacter(a[i], b[i]);
if (result != 0)
{
return result;
}
}
return result;
}
function SortMyArray(arr) {
//This works in ALL browsers
arr.sort(function (a, b) {
return (danishCompareString(convert(a[0]), convert(b[0])));
//And this would have worked in any browser BUT chrome...
// if (a[0].localeCompare(b[0]) == 0) { return 0; }
// if (a[0].localeCompare(b[0]) < 0) { return -1; }
// else { return 1; }
});
}
}
函数转换(stringToConvert)
{
var returnString=新字符串();
var tempLetter;
对于(var j=0;j
它现在在Chrome上运行得很好(5年后)
由于您提到了中文名称,对中文名称数组进行排序的函数为:
chineseNames.sort(function (a, b) {
return a.localeCompare(b, 'zh-CN');
});
chineseNames.sort((a, b) => a.localeCompare(b, 'zh-CN'));
2015年欧洲标准化组织将:
chineseNames.sort(function (a, b) {
return a.localeCompare(b, 'zh-CN');
});
chineseNames.sort((a, b) => a.localeCompare(b, 'zh-CN'));
有关其他语言标识符,请参阅