在javascript中按字典顺序排序数组

时间:2018-12-08 23:29:54

标签: 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

之前

3 个答案:

答案 0 :(得分:1)

尝试一下:

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

答案 1 :(得分:0)

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

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

有趣的是,以下内容在NodeJS中有效,但不适用于Browser 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

答案 2 :(得分:0)

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

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