JavaScript基础(09_数组(Array))

数组(Array)

数组

  • 数组也是一个对象

    • 用来存储一些值

    • 不同的是,普通对象是使用字符串作为属性名

    • 数组是使用数字来作为索引来操作元素

    • 索引

      • 从0开始的一个整数

      • 数组的存储性能比普通对象要好,在开发中经常使用数组来存储一些数据

    • 数组中的元素可以是任意数据类型,也可以是对象,甚至是函数,数组

  • 创建数组对象

    • 方法1:使用构造函数创建数组对象

      • 语法: 数组[索引] = 值

      • var arr = new Array();
        arr[0] = 10;
        arr[1] = 33;
        arr[2] = 22;
        console.log(arr[1]);
        console.log(arr);
        console.log(arr.length);  //获取数组长度(连续的数组)
      • 如果读取不存在的索引 ,返回Undefined

    • 方法2:使用字面量来创建一个数组

      • 语法: []

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

基本方法

  • push()

    • 向数组的末尾添加一个或者多个元素

    • 要添加的元素作为方法的参数传递

    • 这样这些元素将会自动添加到数组的末尾

    • 返回数组的新的长度

  • pop()

    • 删除数组的最后的一个元素

    • 返回被删除的元素

  • unshift()

    • 向数组开头添加一个或者多个元素

    • 返回数组新的长度

  • shift()

    • 删除数组第一个元素

    • 返回被删除的元素

  • slice()

    • 可以用来从数组中提取指定元素

    • 语法: Array.slice(start, stop)

    • 包含start,并不包含stop索引

    • 该方法不会改变原数组,将截取后的元素封装到一个新数组进行返回

    • 若stop不写,则表示从某一个索引位置往后的所有元素全部都要

    • 索引可以传递一个负值

    • var arr = ["swk", "zbj", "shs", "zzj", "bbj"]
              res = arr.slice(1,2)    //提取arr数组中第二个元素
              console.log(res)
  • splice()

    • 删除数组中的指定元素

    • 语法: Array.splice(start, count,[新元素1],[新元素2...])

    • 解释:从start index位置开始,删除count个

    • 向数组添加新元素

    • 会影响原数组,会将指定元素从原数组中删除并返回被删除的元素

    • var arr = ["swk", "zbj", "shs", "zzj", "bbj"]
      res = arr.splice(1,1)   // 从索引=1这个位置起,包含索引=1这个位置的元素,往后删除1个元素
      console.log(res)  //["zbj"]
      console.log(arr)  //["swk", "shs", "zzj", "bbj"]
  • concat()

    • 连接两个或者多个数组,并将新的数组返回

    • 不影响原数组

  • join()

    • 该方法可以将数组转换为字符串,并作为结果返回

    • 不影响原数组

    • 在join()可以指定一个字符串作为参数,这个字符串可以成为数组中的元素连接符

    • 不指定的话,默认是使用逗号连接

  • reverse()

    • 翻转数组中元素顺序,并返回新的数组

    • 该方法会修改原数组

  • sort()

    • 用来对数组的元素排序

    • 该方法会修改原数组

    • 默认按照Unicode编码顺序进行排序

    • 纯数字也是按照Unicode编码进行排序,数字排序后不会得到正确的顺序

    • 可以指定排序的规则

    • 可以在sort()添加一个回调函数,来指定排序的规则

    • 回调函数中需要定义两个形参

    • 浏览器将会分别使用数组中的元素作为实参去调用回调函数

      • 升序排列 return a-b

      • 降序排列 return b-a

遍历

  • for循环遍历

    • var arr = ["swk", "zbj", "shs"]
      for(var i=0;i<arr.length;i++){
        console.log(arr[i]);
      }
  • forEach遍历

    • js中还提供了 forEach()方法来遍历数组(一般都是使用for循环去遍历数组)

      • 这个方法只支持IE8(不包括IE8)以上的浏览器

      • forEach()方法需要一个函数作为参数

        • 像这种函数,由我们创建,但却不是由我们来调用,所以称之为回调函数

      • 数组中有几个元素,函数就会执行几次,浏览器将遍历到的元素,以实参形式传递进来

      • 浏览器会在回调函数中传递三个实参

        • 第一个参数,就是当前正在遍历的元素

        • 第二个参数,就是当前遍历数组的索引

        • 第三个参数,就是当前正在遍历的数组

      • var arr = ["swk", "zbj", "shs", "zzj", "bbj"];
        ​
        arr.forEach(function(value,index,arr){
          // console.log(value);
          // console.log(index);
          console.log(arr);
        });
posted @ 2020-09-20 13:01  名叫蛐蛐的喵  阅读(115)  评论(0编辑  收藏  举报