JS数组之重排序方法

Posted 见嘉于世

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS数组之重排序方法相关的知识,希望对你有一定的参考价值。

重排序方法

1. reserve() 反转

反转数组中元素的顺序。

2. sort() 重排序(默认升序)

sort()方法可以对数组中的每一个元素进行排序,但是问题来了,即便数组元素全部都是数值类型,此方法依然会将所有元素先转换成字符串再进行升序排序。
因此,为了解决这个问题,sort()方法允许传入一个比较函数作为参数,实现升序或者降序。

var arr = [0, 1, 5, 10, 15];
// reserve()反转、  sort()升序(小 => 大)
console.log(arr.reverse()); // 返回反转后的新数组 [15, 10, 5, 1, 0]
console.log(arr); // [15, 10, 5, 1, 0]

// sort()方法比较的始终是字符串
console.log(arr.sort()); // 返回排序后的新数组 [0, 1, 10, 15, 5]
console.log(arr); // [0, 1, 10, 15, 5]

// 为了解决使用sort()会转换成字符串后再比较的问题,sort()方法可以传入一个比较函数。
function compareMinToMax(value1, value2) { // 升序函数
    return value1 - value2;
}
arr.sort(compareMinToMax); // 传入比较函数
console.log(arr); // [0, 1, 5, 10, 15]

function compareMaxToMin(value1, value2) { // 降序函数
    return value2 - value1;
}
arr.sort(compareMaxToMin); // 传入比较函数
console.log(arr); // [15, 10, 5, 1, 0]

以上是关于JS数组之重排序方法的主要内容,如果未能解决你的问题,请参考以下文章