如何按长度然后按字母顺序排序

Mik*_*ith 7 javascript sorting string-length alphabetical

假设我有以下 Javascript 数组。你如何按长度排序,然后按字母顺序排序?

假设有以下数组:

var array = ["a", "aaa", "bb", "bbb", "c"];
Run Code Online (Sandbox Code Playgroud)

排序后,它应该产生:a, c, bb, aaa, bbb。先感谢您!

Nen*_*car 7

您可以先按长度排序,然后使用localeCompare()来按字母顺序排序。

var array = ["a", "aaa", "bb", "bbb", "c"];
array.sort(function(a, b) {
  return a.length - b.length || a.localeCompare(b)
})

console.log(array)
Run Code Online (Sandbox Code Playgroud)


Ric*_*ick 5

先按长度排序,然后使用 || 按字母顺序排序 多个条件的运算符。但是,在你的情况下,一个简单的排序就可以了。

var array = ["a", "aaa", "bb", "bbb", "c"];

array.sort(function(a, b) {
  return a.length - b.length || a.localeCompare(b);
});

console.log(array);
Run Code Online (Sandbox Code Playgroud)

或者

var array =["c", "aa", "bb", "bbb", "b", "aaa", "a"].sort();

array.sort(function(a, b) {
  return a.length - b.length || 0;
});

console.log(array);
Run Code Online (Sandbox Code Playgroud)