gpt4 book ai didi

javascript - 首先对包含重音符号的大写字母进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:33 25 4
gpt4 key购买 nike

所以我在互联网上四处游荡,寻找 js 中的一些排序功能。这就是问题所在。我们有一个像这样的字符串数组:

['único', 'UNICO', 'árbol', 'ARBOL', 'cosas', 'COSAS', 'fútbol', 'FUTBOL']

我们想要这样的东西(大写优先):

['ARBOL', 'COSAS', 'FUTBOL', 'UNICO', 'árbol', 'cosas', 'fútbol', 'único']

或者像这样(小写优先):

['árbol', 'cosas', 'fútbol', 'único', 'ARBOL', 'COSAS', 'FUTBOL', 'UNICO']

问题是:得到这个真的很容易:

['ARBOL', 'COSAS', 'FUTBOL', 'UNICO', 'cosas', 'fútbol', 'árbol','único']

使用 .sort(); 函数,但我们不希望最后出现重音词,所以我们使用

.sort(function(a, b) {
return a.localCompare(b);
});

但我们最终得到了这个......

['ARBOL', 'árbol', 'COSAS', 'cosas', 'FUTBOL', 'fútbol', 'UNICO', 'único']

你们知道如何将两者结合起来吗?

最佳答案

您可以简单地扩展排序功能以优先考虑字符串开头的大写字符:

const arr = ['ÁRBOL', 'único', 'UNICO', 'árbol', 'ARBOL', 'cosas', 'COSAS', 'fútbol', 'FUTBOL'];

function startsWithUppercase(str) {
return str.substr(0, 1).match(/[A-Z\u00C0-\u00DC]/);
}

arr.sort(function(a, b) {
if (startsWithUppercase(a) && !startsWithUppercase(b)) {
return -1;
} else if (startsWithUppercase(b) && !startsWithUppercase(a)) {
return 1;
}
return a.localeCompare(b);
});

console.log(arr);

关于javascript - 首先对包含重音符号的大写字母进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56253008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com