簡體   English   中英

如何按字母順序和長度對數組進行排序

[英]How can I sort an array alphabetticaly and by length

假設我有這個數組:['a', 'c', 'bb', 'aaa', 'bbb', 'aa']。 我想以這種方式對其進行排序:

aaa,aa,a,bbb,bb,c。

this.array= this.array.sort((n1, n2) => n1.localeCompare(n2));
this.array= this.array.sort((n1, n2) => n2.length - n1.length);

但這是不對的。 我該如何解決?

您可以檢查一個字符串是否以另一個字符串開頭並將長度的增量作為返回值。

 var array = ['a', 'c', 'bb', 'aaa', 'bbb', 'aa']; array.sort((a, b) => { let d = a.startsWith(b) || b.startsWith(a)? b.length - a.length: 0; return d || a.localeCompare(b); }); console.log(array);

沒有String#startsWith

 var array = ['a', 'c', 'bb', 'aaa', 'bbb', 'aa']; array.sort((a, b) => { let min = Math.min(a.length, b.length), d = a.slice(0, min) === b.slice(0, min)? b.length - a.length: 0; return d || a.localeCompare(b); }); console.log(array);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM