前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JavaScript】内置对象 - 数组对象 ③ ( 数组反转 - reverse 方法 | 数组排序 - sort 方法 | 自定义数组排序规则 )

【JavaScript】内置对象 - 数组对象 ③ ( 数组反转 - reverse 方法 | 数组排序 - sort 方法 | 自定义数组排序规则 )

作者头像
韩曙亮
发布2024-05-14 08:46:20
1210
发布2024-05-14 08:46:20
举报
文章被收录于专栏:韩曙亮的移动开发专栏
文章目录

  • 一、数组排序
    • 1、翻转数组元素 - reverse()
    • 2、数组元素排序 - sort() 默认从小到大排序
    • 3、数组元素排序 - sort() 自定义排序规则
    • 4、数组元素排序 - sort() 自定义降序排序简化写法

Array 数组对象参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

一、数组排序


1、翻转数组元素 - reverse()

调用 Array 数组对象 的 reverse() 方法 可以 翻转数组中的元素顺序 , 语法如下 :

代码语言:javascript
复制
reverse()
  • 该方法没有参数 ;
  • 返回值 就是 原始数组 , 该数组中的元素顺序被翻转了 ;

调用该方法 , 原数组的数据会被改变 ;

参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse

代码示例 :

代码语言:javascript
复制
        // 创建数组对象
        let arr = [1, 2, 3];

        // 翻转数组
        arr.reverse();

        // 输出 : (3) [3, 2, 1]
        console.log(arr);

完整代码示例 :

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        // 创建数组对象
        let arr = [1, 2, 3];

        // 翻转数组
        arr.reverse();

        // 输出 : (3) [3, 2, 1]
        console.log(arr);
    </script>
</head>

<body>
</body>

</html>

执行结果 :

在这里插入图片描述
在这里插入图片描述

2、数组元素排序 - sort() 默认从小到大排序

调用 Array 数组对象 的 sort() 方法 可以 将数组中的元素进行排序 , 语法如下 :

代码语言:javascript
复制
sort()
sort(compareFn)
  • 该方法 不传入参数 默认是将元素 从小到大进行排列 ;
  • 该方法 可传入一个 定义排序顺序的函数 , compareFn 参数是一个函数 , 该函数需要满足如下要求 :
    • compareFn 比较函数 的 参数是 两个用于比较的元素 , a 是第一个元素 , b 是第二个元素 ;
    • compareFn 比较函数 返回值 是一个数字 , a < b 返回负数 , a > b 返回正数 , a = b 返回 0 ;
  • 返回值 就是 原始数组 , 该数组中的 元素顺序被重新排序了 ;

调用该方法 , 原数组的数据会被改变 ;

参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

代码示例 :

代码语言:javascript
复制
        // 创建数组对象
        let arr = [9, 5, 2, 7];

        // 数组排序
        arr.sort();

        // 输出 : (4) [2, 5, 7, 9]
        console.log(arr);

完整代码示例 :

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        // 创建数组对象
        let arr = [9, 5, 2, 7];

        // 数组排序
        arr.sort();

        // 输出 : (4) [2, 5, 7, 9]
        console.log(arr);
    </script>
</head>

<body>
</body>

</html>

执行结果 :

在这里插入图片描述
在这里插入图片描述

3、数组元素排序 - sort() 自定义排序规则

使用 sort(compareFn) 语法 , 传入一个 排序规则函数 ;

  • compareFn 比较函数 的 参数是 两个用于比较的元素 , a 是第一个元素 , b 是第二个元素 ;
  • compareFn 比较函数 返回值 是一个数字 , a < b 返回负数 , a > b 返回正数 , a = b 返回 0 ;

排序函数示例 : 默认的从小到大的排序规则是 :

  • a < b , 返回 -1 ;
  • a > b , 返回 1 ;
  • a == b , 返回 0 ;
代码语言:javascript
复制
        // 标准排序规则 : 从小到大排序
        //  a < b 返回 -1 
        //  a > b 返回 1
        //  a == b 返回 0 
        function compareFn(a, b) {
            if (a > b) {
                return -1;
            }
            if (a < b) {
                return 1;
            }
            // a == b
            return 0;
        }

参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

代码示例 :

代码语言:javascript
复制
        // 创建数组对象
        let arr = [9, 5, 2, 7];

        // 标准排序规则 : 从小到大排序
        //  a < b 返回 -1 
        //  a > b 返回 1
        //  a == b 返回 0 
        function compareFn(a, b) {
            if (a > b) {
                return -1;
            }
            if (a < b) {
                return 1;
            }
            // a == b
            return 0;
        }

        // 数组排序
        arr.sort(compareFn);

        // 输出 : (4) [9, 7, 5, 2]
        console.log(arr);

完整代码示例 :

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        // 创建数组对象
        let arr = [9, 5, 2, 7];

        // 标准排序规则 : 从小到大排序
        //  a < b 返回 -1 
        //  a > b 返回 1
        //  a == b 返回 0 
        function compareFn(a, b) {
            if (a > b) {
                return -1;
            }
            if (a < b) {
                return 1;
            }
            // a == b
            return 0;
        }

        // 数组排序
        arr.sort(compareFn);

        // 输出 : (4) [9, 7, 5, 2]
        console.log(arr);
    </script>
</head>

<body>
</body>

</html>

执行结果 :

在这里插入图片描述
在这里插入图片描述

4、数组元素排序 - sort() 自定义降序排序简化写法

代码示例 :

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        // 创建数组对象
        let arr = [9, 5, 2, 7];

        // 简化写法 : 返回 b - a 即可
        function compareFn(a, b) {
            return b - a;
        }

        // 数组排序
        arr.sort(compareFn);

        // 输出 : (4) [9, 7, 5, 2]
        console.log(arr);
    </script>
</head>

<body>
</body>

</html>

执行结果 :

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、数组排序
    • 1、翻转数组元素 - reverse()
      • 2、数组元素排序 - sort() 默认从小到大排序
        • 3、数组元素排序 - sort() 自定义排序规则
          • 4、数组元素排序 - sort() 自定义降序排序简化写法
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档