为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蛊毒传说 2019-08-31 15:37:57
我有一个字符串数组,我需要在JavaScript中排序,但不区分大小写。怎么做?
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

在(几乎:)一个单线


["Foo", "bar"].sort(function (a, b) {

    return a.toLowerCase().localeCompare(b.toLowerCase());

});

结果如何


[ 'bar', 'Foo' ]


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

结果是


[ 'Foo', 'bar' ]


查看完整回答
反对 回复 2019-08-31
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

myArray.sort(

  function(a, b) {

    if (a.toLowerCase() < b.toLowerCase()) return -1;

    if (a.toLowerCase() > b.toLowerCase()) return 1;

    return 0;

  }

);

编辑: 请注意,我最初写这篇文章来说明技术,而不是考虑到性能。请参阅@Ivan Krechetov的答案以获得更紧凑的解决方案。


查看完整回答
反对 回复 2019-08-31
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

是时候重温这个老问题了。


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


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

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


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 1037 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信