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中三种常用的数组排序方法,希望对大家有所帮助。如果有更好的排序方法,欢迎在评论区留言探讨。



相关文章
|
5天前
|
JSON JavaScript 前端开发
JavaScript实现字符串转json对象的方法
JavaScript实现字符串转json对象的方法
|
1天前
|
JavaScript 数据安全/隐私保护
如何在Vue组件中调用封装好的外部js文件方法
这篇文章介绍了如何在Vue组件中调用封装好的外部js文件方法,包括在Vue项目中全局引入外部js文件,并在组件中通过this.$myMethod()的方式调用外部js文件中定义的方法。
如何在Vue组件中调用封装好的外部js文件方法
|
4天前
|
JavaScript 测试技术 索引
js数组方法汇总
js数组方法汇总
7 1
|
1天前
|
JavaScript Linux
2022年超详细在CentOS 7上安装Node.js方法(源码安装)
这篇文章介绍了在CentOS 7系统上通过源码安装Node.js的详细步骤,包括从官网下载Node.js源码包、将安装包上传至虚拟机、解压安装包、删除压缩文件、编译安装Node.js、检查Node.js和npm版本,以及切换npm源到淘宝镜像以加速下载。此外,还提供了一个获取Linux下Node.js离线安装包的微信公众号搜索方式。
|
5天前
|
JavaScript 前端开发
javascript中常见获取时间戳的方法
javascript中常见获取时间戳的方法
12 0
|
5天前
|
JavaScript 前端开发
js中this是指向的哪个全局变量,改变this指向的方法有什么?
js中this是指向的哪个全局变量,改变this指向的方法有什么?
6 0
|
5天前
|
前端开发 JavaScript
JavaScript 获取 HTML 元素方法
JavaScript 获取 HTML 元素方法
9 0
|
5天前
|
JavaScript 前端开发 安全
JavaScript实现跳转的方法
JavaScript实现跳转的方法
|
5天前
|
JavaScript 前端开发 索引
JavaScript数组相关的方法有哪些?
JavaScript数组相关的方法有哪些?
|
5天前
|
JavaScript 前端开发
JS遍历数组和对象的方法有哪些
JS遍历数组和对象的方法有哪些

热门文章

最新文章