一、 按数组中字符串长度排序
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]])