如何在JavaScript中执行不区分大小写的排序?

我有一个字符串数组,我需要在JavaScript中排序,但不区分大小写。怎么做?



蛊毒传说
浏览 1038回答 3
3回答

呼啦一阵风

在(几乎:)一个单线["Foo", "bar"].sort(function (a, b) {    return a.toLowerCase().localeCompare(b.toLowerCase());});结果如何[ 'bar', 'Foo' ]而["Foo", "bar"].sort();结果是[ 'Foo', 'bar' ]

翻过高山走不出你

myArray.sort(&nbsp; function(a, b) {&nbsp; &nbsp; if (a.toLowerCase() < b.toLowerCase()) return -1;&nbsp; &nbsp; if (a.toLowerCase() > b.toLowerCase()) return 1;&nbsp; &nbsp; return 0;&nbsp; });编辑: 请注意,我最初写这篇文章来说明技术,而不是考虑到性能。请参阅@Ivan Krechetov的答案以获得更紧凑的解决方案。

犯罪嫌疑人X

是时候重温这个老问题了。您不应该使用依赖的解决方案toLowerCase。它们效率低下,根本不能用某些语言(例如土耳其语)。喜欢这个:['Foo', 'bar'].sort((a, b) => a.localeCompare(b, undefined, {sensitivity: 'base'}))查看文档以了解浏览器兼容性以及有关该sensitivity选项的所有信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript