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

时间:2017-06-14 20:24:52

标签: javascript sorting string-length alphabetical

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

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

排序时应生成:a,c,bb,aaa,bbb。提前谢谢!

3 个答案:

答案 0 :(得分:3)

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



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

console.log(array)




答案 1 :(得分:2)

首先按长度排序,然后按字母顺序使用||运营商有多个标准。但是,在您的情况下,将进行简单的排序。



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"];

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

console.log(array);




答案 2 :(得分:-1)

您需要为它创建自定义比较器并将其抛出到sort方法中: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort?v=example