• js基础知识整理之 —— 数组


    最近觉得基础知识掌握的不扎实,遇到个截取替换之类的拿不准还得查查,时间长不用就忘了,找出了以前看视频教程跟着做的笔记,还可以边整理边复习复习。

    一、数组

    用 [ ] 包起来的一组数据就叫做数组

    他有索引 length 是自带属性(所说的遍历循环,就是利用for循环,实现数组的遍历)

    数组公有的方法 (14个)

    我们任何一个数组都可以调用,存在Array类原型prototype上的共有方法,因为每一个数组都是Array数组类的一个实例;

    1、数组的 “增删改查” 原数组都改变
    1)push 返回值是新增一项后数组的长度

    var ary=[1,2,3,4,5];
    var res=ary.push(4,5,6,8);
    console.log(ary,res);
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    小技巧

    ary[ary.length]="10";
    console.log(ary);
    
    • 1
    • 2

    在这里插入图片描述
    通过ary.length索引实现给数组新加一项

    2)unshifit 返回值是新增一项后数组的长度
    向数组的开头增加项

    var ary=[1,2,3,4,5];
    var res=ary.unshift(0);
    console.log(ary,res);
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    3)pop
    删除末尾项 返回值是删除项
    小技巧:利用length属性实现删除数组末尾项 ary.length-=1; ary.length–; 两者作用相同

    4)shift
    删除数组开头项 返回值是删除项
    var ary=[1,2,3,4,5];
    var res=ary.shift();
    console.log(ary,res);

    5)splice 返回一个裁剪项组成新的数组
    对数组进行裁剪
    语法:ary.splice(裁剪处索引,裁剪多少项,裁剪项用什么替代)

    var ary = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    var res = ary.splice(3, 2, 0);
    console.log(ary, res);
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    var ary = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    var res = ary.splice(3);//从索引3开始删除后面的所有项
    console.log(ary, res);
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    删除末尾项 ary.splice(ary.length-1,1); ary.splice(ary.length-1);

    末尾添加 var res=ary.splice(ary.length,0,"a");
    删除0项 添加“a” 返回空数组 因为没有删掉东西

    开头增加 var res=ary.splice(0,0,"开头项")

    中间项的替换和添加
    替换 ary.splice(0,1,"a"); 删除替换1项
    添加 ary.splice(3,2,"c","d"); 删除替换多项 添加 “c” “d”

    增加是向当前裁剪的索引前边进行增加的
    var ary = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var
    res=ary.splice(1,0,"我","是","二");
    console.log(ary);

    在这里插入图片描述

    ary.splice(0) 克隆数组
    ary.splice() 什么都不传 创建一个空数组,返回一个数组实例

    6)slice(n,m) 查找索引n开始到索引m项之前
    语法:ary.slice(开始处的索引,结束处的索引但是不包含当前结束处索引项)
    在slice查找中,原有数组不发生改变,slice函数的返回值是由查找到的每一项组成的新数组;

    只传一个参数
    ary.slice(0) 相当于将数组复制一份 ary.slice(0,ary.length) 克隆数组
    ary.slice(1) 返回的数组 相当于删除开头项
    ary.slice(0,ary.length-1) 返回的数组 相当于删除最后一项

    (从索引0开始 到最后一个 因为不包含m 长度比索引大1 所以最后一位会留下 删除最后一项)

    从第n项,索引对应(n-1),查找到第m项(m-1),要包含m项,索引对应(m)

    ary.splice() 什么都不传 和concat一样 相当于克隆数组

    7)concat 数组合并
    ary.concat() 我们可以传一项,或多项内容,内容的数据类型可以是任意的,如果是数组的话,就相当于两个数组合并,如果不是数组的话,相当于在原数组末尾增加

    原数组不变 返回一个合并后的新数组

    ary.concat("e",1,2,3) 如果实参不是数组,就是向末尾追加

    ary.concat() 什么都不传,相当于将原有数组克隆

    ary.concat("e",1,2,3,{name:"猴七"}) 将多项合并

    在这里插入图片描述

    数组的 “转换成字符串”
    1)join 原有数组不变 返回结果是以指定分隔符分隔后的字符串,如果不添加指定分隔符,默认是以逗号进行分隔
    在这里插入图片描述
    2)toString 直接将数组转化成字符串
    在这里插入图片描述

    特点:调用的是对象原型上的方法(数组也是对象数据类型的 所以可以调用对象原型上的方法)

    查找数组中的某一项
    1)indexOf 返回值是,从索引0开始,查找项在数组中出现的第一次位置

    2)lastindexOf 返回值是,从末尾索引开始,查找项在数组中出现的第一次位置

    数组的 “循环遍历” (存在原型上的方法 for循环不是存在原型上的方法)
    1)forEach
    格式:forEach (回调函数)

    var ary=["a","b","c"];
    ary.forEach(function (查找到的具体每一项,每一项的索引) {
        console.log(n, m);
    })
    
    • 1
    • 2
    • 3
    • 4

    2)map 对数组中每一项进行遍历,可以每一项都做修改;然后将加工后的每一项,组合成一个新的数组返回来;我们的原数组不改变

    格式:

    ary.map(function (item){
               
    })
    
    • 1
    • 2
    • 3
    var ary=[1,2,3,4];
    var res=ary.map(function (item) {
        return item+"a"//有一项是字符串 就是字符串拼接
    });
    console.log(ary, res);// ary[1, 2, 3, 4]     res["1a", "2a", "3a", "4a"]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    回调函数里面需要用return来得到返回值,对每一项做修改并且将修改后的结果返回出去

    在这里插入图片描述

    var ary=[1,2,3,4,5];
    var res=ary.map(function (item) {
        return item*5;  需要返回值
    });
    console.log(ary, res);//--->(5) [1, 2, 3, 4, 5]    (5) [5, 10, 15, 20, 25]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    1)sort 对数组进行排序 原有数组进行排序,我们的返回值也是排好序的数组
    通过形参a b 进行比较,来实现排序:a b 代表的是我们数组的每一项,也就是拿回调函数中数组的每一项比较的返回值给sort方法,再进行实质的排序

    var ary = [10, 22, 53, 68, 71, 83, 19];
    var res=ary.sort(function (a,b) {  <---回调函数
        return a-b;
    });
    console.log(ary, res);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    return a-b; a-b 是把每一项拿出来比较获得一个从小到大的数组
    return b-a; b-a 是把每一项拿出来比较获得一个从大到小的数组

    ary.sort() 直接调用,不传回调函数的情况下,是只会对10以内的数字进行从小到大的排序

    根据英文26字母也可以排序

    > var ary=["az","ec","d5","b6","a5"]; 
    > ary.sort();
    >  console.log(ary);
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    1)reverse 颠倒倒置数组

    var ary=[1,2,3,4,5,6];
    var res=ary.reverse();
    console.log(ary, res);
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    五个人的用户信息,把当前5个人组成的数组进行排序,以年龄的大小进行排序
    在这里插入图片描述
    a b代表数组中的每一项 用a.age来获取对象里面的age 第一个a是12

  • 相关阅读:
    git使用技巧
    Typora + EasyBlogImageForTypora直接上传图片到博客园
    仅仅三行JAVA代码计算多边形的几何中心点
    Opengl绘制三角形
    spark shuffle·读写流程 和 rdd持久化
    你会用吗?——python中的super到底是干什么的?
    玉柴集团用USB Server对U盾远程安全管控
    电脑录屏快捷键,轻松提升录屏效率
    K210入门必看(MAIX DOCK)(一)
    RPC client之OpenFeign
  • 原文地址:https://blog.csdn.net/qq_39669919/article/details/126000360