簡體   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