js实现数组中的字符串按长度排序,长度一样按字母顺序排序。

一、 按数组中字符串长度排序

1. 升序

function sortArray(array) { 
 array.sort((a, b) => a.length - b.length)
 return array
}
console.log(sortArray(["a", "banana", "app", "appl", "ap", "apply", "apple"]));
// ['a', 'ap', 'app', 'appl', 'apply', 'apple', 'banana']

2. 降序

function sortArray(array) { 
 array.sort((a, b) => b.length - a.length)
 return array
}
console.log(sortArray(["a", "banana", "app", "appl", "ap", "apply", "apple"]));
// ['banana', 'apply', 'apple', 'appl', 'app', 'ap', 'a']

二、先按字符串长度排序,再按字母表顺序排序。

1. 代码

function sortArray(array) { 
 array.sort((a, b) => { 
  if (a.length !== b.length) { 
   return a.length - b.length
  } else { 
   return a.localeCompare(b);
  }
 return array
}
console.log(sortArray(["a", "banana", "app", "appl", "ap", "apply", "apple"]));
// ['a', 'ap', 'app', 'appl', 'apple', 'apply', 'banana']

2. 解析

1)说明
localeCompare() 方法返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。

新的 locales 和 options 参数能让应用程序定制函数的行为,即指定用来排序的语言。 locales 和 options 参数完全取决于实现,在旧的实现中忽略这两个参数。

2)语法
referenceStr.localeCompare(compareString[, locales[, options]])

3)localeCompare()官方描述

    原文作者:小泡泡c
    原文地址: https://blog.csdn.net/qq_45325810/article/details/124268629
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞