[英]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);
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.