Array详解(数组详解)

一,数组的概念

  数组一般是由相同类型的元素组成的集合,是对象;

  数组是值的有序集合,数组中的每个值称为一个元素,每个元素在数组中都有一个数字位置,称为索引,索引从 0 开始,依次递增。

定义

方式1,new 数组名 (参数,参数,...)

  只有一个数字参数时是数组的长度(new可以省略,但一般尽量写上)

1 //定义一个空数组
2 var 数组名 = new Array();
3 //创建一个包含 10 个元素的数组,没有赋值
4 var 数组名 = new Array(10);    
5 //创建一个数组有两个元素
6 var 数组名 = new Array("孙悟空",100);
方式2,var 数组名 = [1, 2, 3, 4, 5] 字面量定义方式
1 var onelist = ['one',1,null,];  //定义一个数组 onelist

 

二,数组的属性

   下标:表示数组的第 几个元素,从左往右数,从 0 开始也叫索引;

复制代码
1 arr[ 0 ] : 表示数组的第 1 个元素 , 他是下标,从 0 开始也叫索引;
2 
3 注意:下标可以是变量或表达式
4 
5 let arr1 = [a,b,c,d];
6 let number = arr1[0];
7 console.log(number);
8 //打印数组中的第一个元素  a  
复制代码

  长度:length属性,代表数组的长度,等于数组的元素个数。不仅是可读的,也可以设置;

1 var arr = []         //定义一个空数组
2 arr.length = 4;      //可以将其长度改为4
3 console.log(arr);    //输出  四个 空默认为实体类型 empty 打印的值仍是undefined    

 

三,数组的方法

  • 栈方法(添加,删除)

    • push():在数组最后添加一个元素,返回添加后数组的长度;

    • 1 let arr = [1,2,3];
      2 let newArr = arr.push(4);
      3 
      4 console.log(arr);
      5 //打印:[1,2,3,4]
      6 console.log(newArr );
      7 //打印:4 注意返回值为改变后数组长度
    • pop():删除数组最后一个,返回被删除的元素;

    • 1 let arr = [1,2,3];
      2 let newArr = arr.pop();
      3 
      4 console.log(arr);
      5 //打印:[1,2]
      6 console.log(newArr );
      7 //打印:3 注意返回值为删除的数组元素

 

  • 队列方法(添加,删除)

    • unshift():在数组最前面添加,返回添加后数组的长度;

    • 1 let arr = [1,2,3];
      2 let newArr = arr.unshift(4);
      3  
      4 console.log(arr);
      5 //打印:[4,1,2,3]
      6 console.log(newArr );
      7 //打印:4 注意返回值为改变后数组长度
    • shift():删除数组第一个,返回被删除的元素;

    • 1 let arr = [1,2,3];
      2 let newArr = arr.shift();
      3  
      4 console.log(arr);
      5 //打印:[2,3]
      6 console.log(newArr );
      7 //打印:1 注意返回值为改变后数组长度

 

  • 排序方法

    • sort():默认按 ASCII 码正序排列,两位或以上的数字会自动转换为string类型,只取第一位数。如 12 取 1 的 ASCII 码比较;

    • 一般使用函数进行排序:

    • 1 arr.sort(function(a,b){
      2     return a-b;        //返回为 正 为正序
      3 })
      4 arr.sort(function(a,b){
      5     return b-a;        //返回为 负 为倒序
      6 }
    • reserver():反转数组顺序,改变原有数组;没有参数;返回值为改变后的数组;

    • 复制代码
      1 var arr = [1,2,3]
      2 var arrResver = arr.reverser() 
      3 console.log(arrResver );
      4 //输出:[3,2,1]
      5 
      6 //它的返回值和原数组指向的同一个地址
      7 arr == arrResver   //true
      8 arr === arrResver  //true
      复制代码

       

  • 数组查询

    • indexOf():根据对应的值找下标,找的是值第一次出现的位置,返回它的下标;默认从下标 0 开始找,没有找到则返回 - 1;

    • 复制代码
      1 let arr = [1,2,3];
      2 let number = arr.indexOf(3);
      3 let int = arr.indexOf(4);
      4  
      5 console.log(number);
      6 //打印: 2  注意返回值为查找值的下标
      7 
      8 console.log(int);
      9 //打印: -1  注意没有找到则返回 -1
      复制代码
    • lastindexOf():跟indexOf() 一样,只不过从后往前开始找;

 

  • 数组截取

    • slice():不修改原数组, 将原数组中的指定区域数据提取出来,返回的是一个新的数组;

    • 两个参数:start:开始下标,end:结束下标;  包括开始下标的值,不包括结束下标的值;
    • 1 let arr = [1,2,3];
      2 let newArr = arr.slice(1,2);
      3 
      4 console.log(newArr);
      5 //打印  [2]  截取原数组,返回一个新数组,不包括结束位置;

       

  • 数组合并,连接

    • concat():把两个或多个数组合并成一个数组,可以连接值;追加数据,把连接的数组或值放在后面, 创建一个新数组, 不改变原数组;
    • 1 var arr1 = [1,2,3]
      2 var arr2 = [4,5,6]
      3 var newarr = arr1.concat(arr2)
      4 console.log(newarr)  //输出 [1,2,3,4,5,6]
    • join():把数组连接成为字符串 有分割符,不会影响原来的数组,返回值为string;
    • 1 var arr1 = [1,2,3]
      2 var newarr = arr1.join()  //无分割符,默认原,号分割
      3 var newarr1 = arr1.join("/")  //以 / 为分割符
      4 console.log(newarr)  //输出 1,2,3
      5 console.log(newarr1)  //输出 1/2/3

 

  • 数组增,删,改

    • splice():截取原数组中指定的数据, 会改变原数组;

    • 删除:(开始下标 删除的个数)(个数可以被省略,就是删到最后)。
    • 复制代码
       1 var arr = [1,2,3]
       2 var newarr = arr.splice(0,1)    
       3 //返回 被删除元素组成的数组
       4 
       5 console.log(newarr)        //输出 [1]
       6 console.log(arr)        //输出 [2,3]
       7 var arr1 = [1,2,3]
       8 var newarr1 = arr.splice(0)
       9 console.log(newarr1)    //输出 [1,2,3]
      10 console.log(arr1)        //输出 []
      复制代码

       

    • 插入:(开始下标,删除的个数,"新元素")插入元素到指定位置,将删除个数改为 0 ,不删除元素,直接插入新元素。

    • 复制代码
       1 var arr = [1,2,3]
       2 var newarr = arr.splice(0,0,4)    
       3 //返回 被删除元素组成的数组
       4 
       5 console.log(newarr)        //输出 []
       6 console.log(arr)        //输出 [4,1,2,3]
       7 var arr1 = [1,2,3]
       8 var newarr1 = arr1.splice(1,0,4)
       9 console.log(newarr1)    //输出 [] 空数组
      10 console.log(arr1)        //输出 [1,4,2,3]
      复制代码

       

    • 替换:将删除位置的数据替换,删除数据位置要输入新的值

    • 1 let arr = [1,2,3]
      2 let newarr = arr.splice(0,1,4)    //返回 被删除元素组成的数组
      3 console.log(newarr)        //输出 [1]
      4 console.log(arr)        //输出 [4,2,3] 已删除并替换掉

       

  • 遍历数组的方法

    • for of:遍历数据的每一个元素;

    • 1 let arr = [1,3,2,4]
      2 for(let v of arr){
      3     console.log(v);
      4     //输出 :1,3,2,4;
      5 }                               

 

    • ES5新增:高阶函数中常用的两个:forEach,map。

    • forEach:遍历数组中的每一项;没有返回值的,对原来数组也没有影响;
    • 1 let arr = [1,2,3,4,5]
      2 //value代表值,index代表下标,arr代表数组;都是形参可以改为任意字母;
      3 arr.forEach(function(value,index,arr){
      4     console.log("值:" + value + ", 下标:" + index + ", 数组:" + array);
      5 })
    • map:遍历数组中的每一项,map的回调函数中支持return返回;
    • 1 var arr = [1,2,3,4,5]
      2 arr.map(function(value,index,arr){
      3     console.log("值:" + value + ", 下标:" + index + ", 数组:" + array);
      4 })
posted @   AVEGER  阅读(568)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示