JavaScript中几个常用的数组排序方法

简介: 大家好,我是Emo_TT。今天我来给大家介绍一下JavaScript中几个常用的数组排序方法。

大家好,我是Emo_TT。今天我来给大家介绍一下JavaScript中几个常用的数组排序方法。


首先是乱序排序,默认从小到大。这个方法是用Math.random()生成随机数来进行排序的,代码如下:


/**
 * 乱序排序 默认从小到大
 * 
 * @method luanXu 数组方法
 * @param {Array} arr 传递的数组
 */
const luanXu = (arr) => {
    arr.sort((a, b) => {
        return 0.5 - Math.random();
    });
};

接下来是冒泡排序,默认从小到大。这个排序方法是通过比较相邻两个元素的大小,将大的元素交换到后面,最终得到有序的数组。代码如下:


/**
 * 冒泡排序 默认从小到大
 * 
 * @method maoPao 数组方法
 * @param {Array} arr 传递的数组
 * @param {String} type 传递的类型默认从小到大不传值,从大到小传递"max"
 */
const maoPao = (arr, type) => {
    let temp;
    for (let i = 0; i < arr.length - 1; i++) {
        for (let j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    if (type == "max") {
        return arr.reverse();
    } else {
        return arr;
    }
};


最后是快速排序,默认从小到大。快速排序是一种分治的排序算法,将原始数组分成左右两个子数组,再对子数组进行排序,最终将左右两个子数组合并起来。代码如下:


/**
 * 快速排序 从小到大排序
 * 
 * @method quickSort 数组方法
 * @param {Array} arr 传递的数组
 */
const quickSort = (arr) => {
    if (arr.length <= 1) return arr;
    let pivotIndex = Math.floor(arr.length / 2),
        pivot = arr.splice(pivotIndex, 1)[0],
        left = [],
        right = [];
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] < pivot) {
            left.push(arr[i]);
        } else {
            right.push(arr[i]);
        }
    }
    return quickSort(left).concat([pivot], quickSort(right));
};


以上就是JavaScript中三种常用的数组排序方法,希望对大家有所帮助。如果有更好的排序方法,欢迎在评论区留言探讨。



相关文章
|
1天前
|
前端开发 JavaScript
前端 JS 经典:数组去重万能方法
前端 JS 经典:数组去重万能方法
6 0
|
1天前
|
前端开发 JavaScript 流计算
前端 js 经典:字符串超全方法总结
前端 js 经典:字符串超全方法总结
9 0
|
1天前
|
前端开发 JavaScript
前端 js 经典:数组常用方法总结
前端 js 经典:数组常用方法总结
11 0
|
2天前
|
前端开发 JavaScript 开发者
JavaScript中的异步编程方法总结
在JavaScript开发中,处理异步操作是非常常见的情况。本文将总结JavaScript中常用的异步编程方法,包括Callback、Promise、Async/Await等,分析其优缺点,并提供使用建议。
|
4天前
|
缓存 前端开发 JavaScript
React和Next.js开发常见的HTTP请求方法
React和Next.js开发常见的HTTP请求方法
7 0
|
4天前
|
前端开发 JavaScript
前端 JS 经典:Math 常用方法汇总
前端 JS 经典:Math 常用方法汇总
6 0
|
4天前
|
前端开发 JavaScript
前端 js 经典:Object 常用原生方法
前端 js 经典:Object 常用原生方法
10 2
|
4天前
|
前端开发 JavaScript
前端 js 经典:array 原生方法
前端 js 经典:array 原生方法
10 1
|
5天前
|
JavaScript 前端开发
JS中正则方法的使用 - 蓝易云
以上就是JavaScript中正则方法的基本使用。这些方法可以用于执行复杂的字符串处理和验证任务。
26 1
|
5天前
|
JavaScript 前端开发
JavaScript的`apply`方法:函数的“应用”与“调用”
JavaScript的`apply`方法:函数的“应用”与“调用”