JavaScript 排序数组JavaScript 中的字符串数组排序
对字符串数组进行排序
JavaScript 数组有一个sort()方法,可以按字母顺序对数组项进行排序。
下面说明了sort()方法的语法:
Array.sort([comparer])
sort ()方法接受一个可选参数,该参数是一个比较数组两个元素的函数。
如果省略比较函数,则sort()方法将根据元素值对元素进行排序。
元素值规则:
1.如果compare(a,b)小于零,sort()方法会将a排序到比b更低的索引位置。换句话说,a将排在最前面。2
.如果compare(a,b)大于零,sort()方法会将b排序到比a更低的索引位置,也就是说,b将排在最前面。3
.如果 compare(a,b)返回零,sort()方法认为 a 等于 b,并保持它们的位置不变。
另请注意,sort()方法接受两个参数并将返回一个确定排序顺序的值,以下表示语法:
function compare (a, b) {
/ …
}
注意:请记住,您可以根据需要命名函数,但请尝试使名称对您试图通过该函数表达的意思有意义,以便于参考。
对字符串数组进行排序让我们使用名为animals
的字符串数组进行练习,如下所示:
var animals = [
'cat', 'dog', 'elephant', 'bee', 'ant'
];
要按字母顺序对动物数组的元素进行升序排序,我们需要使用sort()方法而不传递 compare 函数,如示例中所示:
animals.sort();
console.log(animals);
// ["ant", "bee", "cat", "dog", "elephant"]
要按降序对动物数组进行排序,您需要更改比较函数的逻辑并将其传递给sort()方法,如下例所示。
// descending order
animals.sort(function (a, b) {
if (a > b) {
return -1;
}
if (b > a) {
return 1;
}
return 0;
});
console.log(animals);
// ["elephant", "dog", "cat", "bee", "ant"]
当然,这只是对数组元素进行排序的一小部分,因为我们还可以使用sort()方法按大小写、数字和对象属性进行排序。
鏂囩珷鏉ユ簮锛�https://dev.to/banesag/sorting-arrays-of-strings-in-javascript-2g11