-
呼啦一阵风
在(几乎:)一个单线["Foo", "bar"].sort(function (a, b) { return a.toLowerCase().localeCompare(b.toLowerCase());});结果如何[ 'bar', 'Foo' ]而["Foo", "bar"].sort();结果是[ 'Foo', 'bar' ]
-
翻过高山走不出你
myArray.sort( function(a, b) { if (a.toLowerCase() < b.toLowerCase()) return -1; if (a.toLowerCase() > b.toLowerCase()) return 1; return 0; });编辑: 请注意,我最初写这篇文章来说明技术,而不是考虑到性能。请参阅@Ivan Krechetov的答案以获得更紧凑的解决方案。
-
犯罪嫌疑人X
是时候重温这个老问题了。您不应该使用依赖的解决方案toLowerCase。它们效率低下,根本不能用某些语言(例如土耳其语)。喜欢这个:['Foo', 'bar'].sort((a, b) => a.localeCompare(b, undefined, {sensitivity: 'base'}))查看文档以了解浏览器兼容性以及有关该sensitivity选项的所有信息。