繁体   English   中英

在javascript中按字典顺序对数组进行排序

[英]sort array lexicographically in javascript

为什么这段代码

["Q", "fP", "AQ", "L"].sort((a,b) => a.localeCompare(b))

给出这个结果:

["AQ", "fP", "L", "Q"]

我认为它会给我这个(这就是我需要的):

["AQ", "L", "Q", "fP"]

所有大写字母都在小写字母之前chortle.ccsu.edu/java5/Notes/chap92/ch92_2.html

不要使用localeCompare() ,直接使用sort()

 let myArray = ["Q", "fP", "AQ", "L"]; myArray.sort(); console.log(myArray);

有趣的是,以下内容适用于 NodeJS,但不适用于浏览器 JavaScript。 这是因为 ECMAScript 标准没有规定使用哪种排序算法,所以由每个浏览器和/或 NodeJS 来规定

let myArray = ["Q", "fP", "AQ", "L"];
myArray.sort((a, b) => a > b);
console.log(myArray);

NodeJS 演示

https://repl.it/@AnonymousSB/SO53688028

文档

http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.11

尝试这个:

 let myArray = ["Q", "fP", "AQ", "L"]; myArray.sort((a, b) => a > b ? 1 : -1); console.log(myArray);

不要使用localeCompare() ,直接使用sort() 如下:

["Q", "fP", "AQ", "L"].sort();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM