• JS,数组语法+示例,超详细!!!


    数组介绍

    访问数组元素:“数组[下标]”

    数组中可以存放任意类型的数据

    数组长度可以任意变化,不需要提前声明

    数组元素的个数:数组名.length

    数组的定义

    一维数组

    使用Array()函数定义

    使用Array()函数创建更详细的数组对象

    格式:

    var 数组名 = new Array(); //数组下标从0开始

    使用中括号[]直接声明并设置每个元素的值

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    20

    二维数组

    一维数组的每个元素都是数组,则称为二维数组。若二维数组的每个元素都是数组,则为多维数组

    虽然数组中元素类型可以不一致,但实际使用时一般都需要统一数据类型。二维数组则是让每个子数组统一数据类型和含义

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    21

    数组属性

    length属性

    length表示数组元素数量

    数组的length属性允许直接修改,增大数组的length属性,数组会出现空白元素;减小数组的length属性,自动删除下标大于等于length的元素(实际场景中,一般约定为只读属性,不直接修改数组的length属性)

    prototype属性

    数组操作

    JS提供了许多函数用于操作数组和数组元素,覆盖了常见的数组操作函数

    新增元素

    新增元素分为三种,分别在数组尾部、中间、首部增加元素

    尾部新增元素(数组名.push)

    使用push函数新增元素时,数组长度自动增加1,将新元素设置为尾部元素;push函数接收多个参数时,自动在尾部追加多个元素

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    22

    在数组中间新增元素(数组名.splice)

    JS支持在数组的某个位置新增元素,并自动调整其他元素的索引

    数组名.splice(参数1,参数2,参数3,......,参数3)
    参数1:新增元素插入的位置
    参数2:从插入位置是否删除后续元素
    参数3...n:插入n个新元素
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    23

    在数组首部新增元素(数组名.unshift)

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    24

    查找元素

    查找元素分为三种方法:从后往前,从前往后,按条件查找

    从前往后(数组名.indexOf(value))

    从前往后查找:数组的indexOf(value)从0开始向后查找value在数组中的位置,如此存在,返回value对应的索引,如果不存在,返回-1

    indexOf(value)
    遵循规则:
    		如果value存在于数组中,返回与value全等的元素的索引
    		索引从0开始,如果存在,返回-1
    		indexOf(value)使用全等(===)进行比较
    	
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    从后往前(数组名.lastIndexOf(value))

    与indexOf(value)一样,区别是从后往前查找

    按条件查找(find(callback))

    删除元素(数组名.splice())

    用splice函数删除指定下标的元素后,后续元素的下标自动更新,使索引连续。(delete操作删除元素不会修正其他元素的索引)

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    25

    替换元素(数组名.splice())

    数组名.splice(参数1 , 参数2 ,参数3 , … , 参数3)

    参数1:索引号

    参数2:表示删除多少个元素

    参数3:表示替换的元素

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    26

    迭代数组

    for i++迭代数组

    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    27

    for…in迭代数组

    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    forEach迭代数组

    数组的forEach()方法是接收一个回调函数作为参数,使用每个元素执行一次该函数

    语法:

    
    forEach(callback[,thisArg])
    callback:必选参数,表示为每个元素执行的回调函数,该函数接收三个参数
    形式:callback(element,index,array)
          element:当前元素
          index:元素对应的索引号
          array:当前数组
    thisArg:可选参数,表示执行callback时绑定的this对象
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    28

    数组排序

    基于In-place算法的排序方法sort(callback)

    callback(a,b)
    参数a、b表示数组的两个元素,sort将按照一定顺序使用两个数组元素作为参数调用callback回调,再根据callback的返回值(-1、0、1)调整元素a、b在数组中的位置
    -1(小于0的数),表示a位于b的前面,否则a、b交换位置
    1(大于0的数),表示a位于b的后面,否则a、b交换位置
    0,表示a、b位置不需要交换
    
    调用sort函数如果没有传递callback参数时,将根据数字大小或字符串的Unicode编码对元素排序
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    29

    排序的稳定性指数组每次排序的结果都一样。sort()的稳定性取决于callback()

    如果callback(a,b)是稳定的,则a、b比较结果是稳定的,则sort()是稳定的,反之不稳定。

    数组求和

    利用数组的reduce函数(从前往后)或reduceRight函数(从后往前)进行累加

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    快速交换

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    30

  • 相关阅读:
    http 请求 Cros 跨域问题记录(转)
    1.3、三种交换方式
    java-GUI编程之AWT组件
    Gitlab光速发起Merge Request
    如何收集HANA 内存itab trace
    详细讲解磁盘及文件系统管理(图例解析)
    VR+中医骨伤学仿真情景实训教学|英途信息
    【记录】Discuz!论坛防灌水防注册机,清理垃圾会员
    eax和ax、ah、al的区别简介
    前端经典面试题 | v-if/v-show的原理及区别
  • 原文地址:https://blog.csdn.net/m0_62951223/article/details/126924424