如何在JavaScript中执行字符串的不区分大小写的排序数组?

2022-08-30 00:08:07

我有一个字符串数组,我需要在JavaScript中排序,但以不区分大小写的方式。如何执行此操作?


答案 1

在(几乎:)单行本

["Foo", "bar"].sort(function (a, b) {
    return a.toLowerCase().localeCompare(b.toLowerCase());
});

这导致

[ 'bar', 'Foo' ]

["Foo", "bar"].sort();

结果

[ 'Foo', 'bar' ]

答案 2

现在是重新讨论这个老问题的时候了。

不应使用依赖于 的解决方案。它们效率低下,在某些语言(例如土耳其语)中根本不起作用。更喜欢这个:toLowerCase

['Foo', 'bar'].sort((a, b) => a.localeCompare(b, undefined, {sensitivity: 'base'}))

查看浏览器兼容性文档以及有关该选项的所有信息。sensitivity