gpt4 book ai didi

javascript - 为什么 localeCompare 不能像我预期的那样工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:53:56 25 4
gpt4 key购买 nike

我尝试按字母顺序对数组数据进行排序,但我认为有些地方不对。

var items;

// it's OK
items = ['a', 'á'];
items.sort((a, b) => a.localeCompare(b, 'hu'));
console.log(items); // ["a", "á"]

// it's OK, too
items = ['an', 'án'];
items.sort((a, b) => a.localeCompare(b, 'hu'));
console.log(items); // ["an", "án"]

// hmmm, it's not
items = ['an', 'ál'];
items.sort((a, b) => a.localeCompare(b, 'hu'));
console.log(items); // ["ál", "an"]

匈牙利语字母表以 a、á、b、c...开头

任何建议,我应该如何使用 localecompare 功能。

最佳答案

那是因为aá有相同的base letter:a

console.log('a'.localeCompare('á', 'hu', { sensitivity: 'base' })); // 0

区别可以用瑞典语和德语中的字母 aä 来说明:

在瑞典语中,aä 没有相同的基本字母,但实际上是两个不同的字母。

console.log('a'.localeCompare('ä', 'sv', { sensitivity: 'base' })); // -1

在德语中 aä 有相同的基本字母

console.log('a'.localeCompare('ä', 'de', { sensitivity: 'base' })); // 0

您的选择是按照 Jonas W 的建议编写自定义排序算法。

关于javascript - 为什么 localeCompare 不能像我预期的那样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51599040/

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