JavaScript 数组

目录

一维数组

解构赋值

增删改查

常用操作

二维数组


一维数组

创建数组:

  1. 通过构造函数创建数组

    • let 变量名称 = new Array(size); //创建一个指定大小的数组

    • let 变量名称 = new Array(); //创建一个空数组

    • let 变量名称 = new Array(data1,data2,……); //创建一个带数据的数组

  2. 通过字面量创建数组

    • let 变量名称 = []; //创建一个空数组

    • let 变量名称 = [data1,data2,……]; //创建一个带数据的数组

向数组中存储数据:变量名称[索引号] = 需要存储的数据;

从数组中获取数据:变量名称[索引号] ;

注意点:

        ①如果数组对应的索引中没有存储数据,默认存储的就是undefined

        ②访问数组不存在的索引不会报错,会返回undefined

                例:let arr = new Array(3);

                       console.log(arr[666]); //undefined

        ③和其他编程语言不同,JavaScript中数组存储空间不够时会自动扩容

        ④和其他编程语言不同,JavaScript中数组可以存储不同数据类型

解构赋值

let arr = [1,3,5];

let [a,b,c] = arr; // a = 1, b = 3, c = 5(遍历数组并将值赋给abc)

注意点:

        ①等号左边的格式必须和等号右边的格式一模一样,才能够完全解构

        例:let [a,b,c] = [1,3,[5,7]]; //错误写法

               let [a,b,[c,d]] = [1,3,[5,7]]; //正确写法

        ②左边的个数可以比右边少

        例:let [a,b] = [1,3,5]; //a = 1, b = 3

        ③右边的个数可以比左边少,且此时可以给左边指定默认值,若不指定默认值,则为undefined

        例:let [a,b,c] = [1]; //a = 1

               let [a,b=666,c=888] = [1]; //a = 1,b = 666,c = 888

               let [a,b,c] = [1]; //a = 1,b = undefined,c = undefined

        ④如果左边的个数和右边个数不一样,则左边设置的默认值会被覆盖

        例:let [a,b=666,c=888] = [1,3,5]; //a = 1, b = 3, c = 5

               let [a,b=666] = [1,3,5]; //a = 1, b = 3

  • 在数组的解构赋值中,若左边的个数比右边少,还可以使 扩展运算符 来打包剩余的数据(将剩余数据打包为一个数组赋给左边最后一个数)

    扩展运算符:...

    例:let [a,b] = [1,3,5];

           let [a,...b] = [1,3,5]; //a = 1, b = [3,5]

    注意点:扩展运算符只能写在最后

增删改查

let arr = ("a" , "b" , "c");

查:console.log(arr[1]); // b

改:arr[1] = "修改后的内容";

       arr [1] = "d"; arr[2] = “e”; //将索引为1的数据改为d,将索引为2的数据改为e

       arr.splice(1,2,"d","e"); //修改索引为1的后边的2个数据为d和e

       参数1:从什么位置开始

       参数2:需要替换多少个元素

       参数3:新的内容

增:

1. 在数组最后添加一条数据

        ①arr[3] = "d";

        ②arr.push("d"); //push方法可以在数组最后新增一条数据,并且会将新增内容之后的数组长度返回至控制台

2. 在数组最后添加两条数据

        ①arr.push("d");

           arr.push("e");

        ②arr.push("d","e"); //数组的push方法可以接受一个或多个参数

3. 在数组最前面添加一条数据

        arr.unshift("新增的内容"); //与push方法一样,会将新增内容之后的数组长度返回至控制台

4. 在数组最前面添加两条数据

        ①arr.unshift("d");

           arr.unshift("e");

        ②arr.unshift("m","w"); //与push方法一样,可以接受一个或多个参数

删:

1. 删除数组最后一条数据

        arr.pop(); //pop方法可以在数组最后删除一条数据,并且会将删除内容之后的数组长度返回至控制台

        例:let res = arr.pop(); // res = 删除内容之后的数组长度

2. 删除数组最前面的一条数据

        arr.shift(); //shift方法可以在数组最前面删除一条数据,并且会将删除内容之后的数组长度返回至控制台

        例:let res = arr.shift(); // res = 删除内容之后的数组长度

3. 删除数组中索引为1的数据

        arr.splice(1,1); //从索引为1的元素开始删除1条数据(即删除索引为1的数据)

常用操作

let arr = [1,2,3,4,5];

  • 清空数组

    1. arr = [];

    2. arr.length = 0;

    3. arr.splice(0,arr.length);

  • 将数组转换为字符串

    let str = arr.toString();

  • 将数组转换为指定格式字符串

    arr.join(); //join方法默认情况下如果没有传递参数,就是调用to.String();

    注意点:join方法如果传递了参数,就会将传递的参数作为参数和参数之间的连接符号

    例:let str = arr.join("+"); // 1+2+3+4+5

  • 将两个数组拼接成一个数组

    let arr1 = [1,3,5];

    let arr2 = [2,4,6];

    1. let res = arr1.concat(arr2);

    2. let res = [...arr1,...arr2]; // let res = [1,3,5,2,4,6];

      注意点:①扩展运算符在解构赋值中(等号的左边)表示将剩余数据打包成一个新的数组

                    ②扩展运算符在等号右边,表示将数组中所有的数据解开,放到所在的位置

                    ③不会修改原有数组,会生成一个新的数组返回至控制台

    注意点:数组不能使用加号进行拼接,如果使用加号进行拼接会先转换为字符串再拼接

    例:let res = arr1 + arr2; // 1,3,52,4,6

  • 对数组中的内容进行反转

    let res = arr.reverse(); // res = [5,4,3,2,1]

    注意点:会修改原有数组

  • 截取数组中指定范围内容

    let res = arr.slice(1,3); // res = [2,3]

    注意点:slice方法是包头不包尾(包含起始位置,不包含结束位置)

  • 查找元素在数组中的位置

    1. let res = arr.indexOf(3); // 2

      注意点:①index方法如果找到了指定元素,就会返回元素对应的位置

                    ②如果没有找到指定元素,就会返回 -1

                    ③index方法默认是从左到右查找,一旦找到就会立即停止查找,即使后边存在相同元素也查不出来后边相同元素的位置

    2. let res = arr.indexOf(4,1); // 3(从索引为1的元素开始查找元素4的位置)

      参数一:需要查找的元素

      参数二:从什么位置开始

    3. let res = arr.lastIndexOf(3); // 2 (从后往前查找元素3的位置)

    4. let res = arr.laseIndexOf(3,4) // 2 (从后往前且从索引为4的元素开始查找元素3的位置)

  • 判断数组中是否包含某个元素

    1. 通过indexOf和lastIndexOf的结果,判断是否是 -1即可

      let res = arr.indexOf(8); // -1 (即数组arr中没有元素8)

      let res = arr.lastIndexOf(4); // 3 (即数组arr中有元素4,且索引为3)

    2. 通过 includes() 方法判断

      let res = arr.includes(8); // false

      let res = arr.includes(4); // true

  • 字符串的 split 方法

    根据传入参数切割字符串,转换成一个数组之后返回至控制台

    例:let str = prompt("请输入三个整数,用逗号隔开"); //分别输入1,3,5

           let arr = str.split(",");

           console.log(arr); // ["1","3","5"]

  • 判断是否为数组的方法

    1. instanceof

      例:let res = [ ]; // 数组

             let obj = { }; // 对象

             console.log(res instanceof Array); // true

             console.log(obj instanceof Array); // false

    2. Array.isArray(参数)

      例:let res = [ ]; // 数组

             let obj = { }; // 对象

             console.log(Array.isArray(res)); // true

             console.log(Array.isArray(obj)); // false

二维数组

定义:let arr = [[],[],[]];

注意点:在定义二维数组的时候,将来要存储多少个一维数组,就写多少个[]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_L...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值