当前位置: 首页 > news >正文

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

文章目录

  • 一、数组排序
    • 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() 方法 可以 翻转数组中的元素顺序 , 语法如下 :

reverse()
  • 该方法没有参数 ;
  • 返回值 就是 原始数组 , 该数组中的元素顺序被翻转了 ;

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


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


代码示例 :

        // 创建数组对象let arr = [1, 2, 3];// 翻转数组arr.reverse();// 输出 : (3) [3, 2, 1]console.log(arr);

完整代码示例 :

<!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() 方法 可以 将数组中的元素进行排序 , 语法如下 :

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


代码示例 :

        // 创建数组对象let arr = [9, 5, 2, 7];// 数组排序arr.sort();// 输出 : (4) [2, 5, 7, 9]console.log(arr);

完整代码示例 :

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

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


代码示例 :

        // 创建数组对象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 == breturn 0;}// 数组排序arr.sort(compareFn);// 输出 : (4) [9, 7, 5, 2]console.log(arr);

完整代码示例 :

<!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 == breturn 0;}// 数组排序arr.sort(compareFn);// 输出 : (4) [9, 7, 5, 2]console.log(arr);</script>
</head><body>
</body></html>

执行结果 :

在这里插入图片描述


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


代码示例 :

<!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>

执行结果 :

在这里插入图片描述

http://www.lryc.cn/news/345714.html

相关文章:

  • ctfshow web入门 php反序列化 web267--web270
  • 智慧公厕解决什么问题?实现了什么样的价值?
  • IATF16949认证是什么?
  • 【Vue2】关于response返回数据的错误小记
  • 深入理解C++构造函数和析构函数
  • CMakeLists.txt语法规则:数学运算 math
  • 图片无损压缩工具-VIKY
  • 【Linux操作系统】:文件操作
  • 渗透之sql注入----二次注入
  • LeetCode 每日一题 ---- 【2105. 给植物浇水 II】
  • 【刷题】代码随想录算法训练营第三十五天|435、无重叠区间,763、划分字母区间 ,56、合并区间
  • 【JVM】了解JVM规范中的虚拟机结构
  • 西藏在线教育系统哪家好,培训机构为什么讲师流动大?该如何留住讲师?
  • 智能文档提取
  • 封装Springboot基础框架功能-03
  • 汽车EDI:IAC Elmdon EDI 对接指南
  • IPFoxy:什么是静态住宅IP?静态ISP代理指南
  • 【算法】高精度(string实现)
  • 宝塔面板如何删除一个站点
  • Android RecyclerView
  • 【QT教程】QT6命令行工具开发 QT命令行
  • 基于Springboot的微乐校园管理系统(有报告)。Javaee项目,springboot项目。
  • 【第6节课笔记】LagentAgentLego
  • 【ARMv8/v9 系统寄存器 4 -- ARMv8 通用寄存器详细介绍】
  • 一个月速刷leetcodeHOT100 day 01
  • Cargo - 构建 rust项目、管理依赖包
  • 内网安全-代理Socks协议路由不出网后渗透通讯CS-MSF控制上线简单总结
  • NSSCTF | [SWPUCTF 2021 新生赛]jicao
  • Redis 支持的 Java 客户端都有哪些?
  • 【JavaEE 初阶(四)】多线程进阶