首页 文章

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

提问于
浏览
3

为什么这个代码

["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

2 回答

  • 0

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

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

    不要使用 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

相关问题