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

问题描述 投票:0回答:3

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

假设有以下数组:

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

排序后应该产生:

a, c, bb, aaa, bbb
。预先感谢您!

javascript sorting string-length alphabetical
3个回答
12
投票

您可以先按长度排序,然后使用

localeCompare()
按字母顺序排序。

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

console.log(array)


8
投票

首先按长度排序,然后使用 || 按字母顺序排序多个条件的运算符。但是,就您的情况而言,只需进行简单的排序即可。

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

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

console.log(array);

或者

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

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

console.log(array);


0
投票

arr.sort((a, b) => a.length - b.length || this)

© www.soinside.com 2019 - 2024. All rights reserved.