js数组常用方法

目录

 增删

截取替换

查询过滤

遍历

 其他

JavaScript提供了丰富的数组方法来处理和操作数组。以下是一些常用的数组方法:

  1. push(): 向数组末尾添加一个或多个元素,并返回修改后数组的新长度。
  2. pop(): 删除并返回数组的最后一个元素。
  3. shift(): 删除并返回数组的第一个元素,并更新其他元素的索引。
  4. unshift(): 在数组开头添加一个或多个元素,并返回修改后数组的新长度。
  5. concat(): 将两个或多个数组合并成一个新数组,并返回该新数组。
  6. slice(): 返回指定索引范围内的元素组成的新数组,不修改原始数组。
  7. splice(): 在指定位置插入、删除或替换数组元素,并返回被删除元素组成的新数组。
  8. fill():将数组中指定范围的元素替换为固定值,并返回修改后的数组
  9. find():在数组中查找符合条件的元素,并返回第一个符合条件的元素
  10. findIndex():返回的是符合条件的元素在数组中的索引
  11. includes():判断数组中是否包含指定元素,返回布尔类型
  12. indexOf(): 返回数组中第一个匹配元素的索引,如果未找到则返回-1。
  13. lastIndexOf(): 返回数组中最后一个匹配元素的索引,如果未找到则返回-1。
  14. forEach(): 遍历数组中的每个元素,并对其执行指定的函数。
  15. map(): 遍历数组中的每个元素,并根据指定的函数创建一个新数组。
  16. filter(): 创建一个由数组中满足指定条件的所有元素组成的新数组。
  17. some(): 检查数组中是否存在满足指定条件的元素,只要有一个满足即返回true。
  18. every(): 检查数组中所有元素是否都满足指定条件,只要有一个不满足即返回false。
  19. sort(): 对数组元素进行排序,默认按照Unicode码点进行排序。
  20. reverse(): 颠倒数组中元素的顺序。
  21. join(): 将数组中所有元素以指定分隔符连接成一个字符串并返回。

 增删

方法名说明是否改变原数组返回值

Array.push()

向当前数组的末尾添加一个或多个元素数组的长度

Array.unshift()

向当前数组的开头位置插入一个或多个元素数组的长度

Array.pop()

用于移除数组最后一个成员删除的成员

Array.shift()

用于移除数组第一个成员

删除的成员

Array.concat()

用于合并两个或多个数组新数组

 Array.push()

      let arr = [43, 33, 29, 67];
      // 尾部添加数据
      let i = arr.push(888);

      console.log(i);  //5
      console.log(arr);  //[43, 33, 29, 67, 888]

Array.unshift()

      let arr = [43, 33, 29, 67];
      // 头部添加数据
      let i =  arr.unshift(666);

      console.log(i); //5
      console.log(arr); //[666, 43, 33, 29, 67]

注意:如果添加的元素类型为数组类型,仍然会被当作一个元素看待,只是这个元素是数组类型而已。如果要合并两个数组,请使用 concat() 函数。 

      let arr2 = [111, 555, "sss"];
      arr.push(arr2);
      console.log(arr);//[43, 33, 29, 67, 888, Array(3)]

Array.pop()

      // 删除尾部最后一个数据
      let arr = [43, 33, 29, 67];
      let i = arr.pop();
      
      console.log(i); //67
      console.log(arr);//[43, 33, 29]

Array.shift() 

      // 删除头部第一个数据
      let arr = [43, 33, 29, 67];
      let i = arr.shift();

      console.log(i); //43
      console.log(arr);//[33, 29, 67]

Array.concat() 

      //   合并数组
      let arr = [43, 33, 29, 67];
      let arr2= arr.concat(arr)//多个数组使用 , 隔开
      
      console.log(arr)//[43, 33, 29, 67]
      console.log(arr2)//[43, 33, 29, 67, 43, 33, 29, 67]

截取替换

方法名说明是否改变原数组返回值

Array.slice()

用于浅拷贝指定区间的数组成员被截取部分的数组

Array.splice()

用于从当前数组中(添加,删除,替换)一部分连续的元素被删除和替换部分的数组

Array.fill()

将一个固定值填充到起始索引到终止索引内新数组

 Array.slice()

    // 浅拷贝数组
      let arr = [43, 33, 29, 67];
      //第一个参数是开始索引,第二个是结束索引
        let arr2 = arr.slice(2, 4);

        console.log(arr);//[43, 33, 29, 67];
        console.log(arr2);//[ 29, 67];

Array.splice() 

          // 增删改
        let arr = [43, 33, 29, 67];
        //第一个参数是开始索引,第二个是删除的个数,后面的都是要添加的数据

        // 新增   返回值为空数组,会修改原数组
        arr.splice(2, 0, 111, 222, 333);
        console.log(arr);//[43, 33, 111, 222, 333, 29, 67]

        // 删除    从下标2开始删除2个数据,返回删除的成员
        let arr2 = arr.splice(2, 2);
        console.log(arr);//[43, 33, 333, 29, 67]
        console.log(arr2);//[111, 222]

        // 替换    从下标1开始替换后面2个成员,返回被替换的成员
        let arr3 = arr.splice(1, 2, 55, 67);
        console.log(arr); //[43, 55, 67, 29, 67]
        console.log(arr3);//[33, 333]

Array.fill() 

参数:

  • Value:需要替换的元素值
  • start:开始的索引
  • end:结束的索引
      //替换
        let arr = [43, 33, 29, 67];
       arr.fill(22,1,3)
       
      console.log(arr)//[43, 22, 22, 67]

 

查询过滤

方法名说明是否改变原数组返回值

Array.filter()

筛选符合回调函数里条件的元素符合条件的数组

Array.includes()

判断数组是否包含指定的值Boolean
Array.find()返回满足条件的第一个元素符合条件的第一个成员

Array.findIndex()

返回满足条件的第一个元素的下标符合条件第一个的下标
Array.indexOf()从头部查找第一次出现指定字符的位置查找到的下标

Array.lastIndexOf()

从尾部查找第一次出现指定字符的位置查找到的下标

 Array.filter()

回调函数的参数:

  • Value:当前数组中处理的元素
  • index:数组中正处理的当前元素的索引
  • array:被调用的数组
      // 筛选数据
      let arr = [43, 33, 29, 67];
      //第一个参数是回调函数,第二个参数是回调函数的this

      let arr2 = arr.filter((value,index) => {
        console.log(index)// 0 1 2 3
        return value>35
      });

      console.log(arr2);//[43, 67]

Array.includes() 

参数:

  • Value:需要查找的元素值
  • index:查找数组开始的索引
      //查找是否存在
      let arr = [43, 33, 29, 67];
      var is = arr.includes(33)

      console.log(is)//true

Array.find()    Array.findIndex() 

      //   获取符合条件的第一个元素和下标
      let arr = [43, 33, 29, 67];
      let value = arr.find((v) => v > 40);
      let i = arr.findIndex((v) => v > 40);

      console.log(value);//43
      console.log(i);//0

Array.indexOf()

        //获取指定元素的第一个下标
         let arr = [43, 33, 29, 67, 29];
        let i = arr.indexOf(29);
        console.log(i);//2

Array.lastIndexOf() 

       //获取指定元素的第一个下标
         let arr = [43, 33, 29, 67, 29];
        let i = arr.lastIndexOf(29);
        console.log(i);//4

遍历

方法名说明是否改变原数组返回值

Array.forEach()

用于迭代数组的每项成员undefined

Array.map()

根据回调函数,更新给定数组中的每个值回调函数的结果
Array.every()判断是否所有成员都满足特定条件Boolean

Array.some()

判定数是否存在一个成员特定条件Boolean

 Array.forEach()

       //遍历数组

        let arr = [43, 33, 29, 67];
         //forEach第一个参数是回调函数,第二个参数是回调函数的this
        arr.forEach((v, i) => (arr[i] = v * 3));
       
        console.log(arr);//[129, 99, 87, 201]

 Array.map()

      //遍历数组
        let arr = [43, 33, 29, 67];
      //map第一个参数是回调函数,第二个参数是回调函数的this
    
      let arr2 = arr.map((v) => v * 2);
      console.log(arr2);//[86, 66, 58, 134]

Array.every() 

      //  是否符合条件
      let arr = [43, 33, 29, 67];

      let isall = arr.every((v) => v > 3);
      console.log(isall);//所有的项都大于3结果为true

 Array.some()

      //  是否符合条件
      let arr = [43, 33, 29, 67];

      let isitem = arr.some((v) => v > 22);
      console.log(isitem);//有大于22的所以结果为true

回调函数的参数:

  • Value:当前数组中处理的元素
  • index:数组中正处理的当前元素的索引
  • array:被调用的数组

  注意: 没有办法中止或者跳出 forEach和map 循环,除了抛出一个异常。如果您正在测试一个数组里的元素是否符合某条件,且需要返回一个布尔值,那么可使用 every() 或 some()。如果可用,新方法 find() 或者 findIndex() 也可被用于真值测试的提早终止。

 其他

方法名说明是否改变原数组返回值

Array.join()

根据字符将数组所有成员连接到字符串中String

Array.reverse()

用于将当前数组的成员顺序全部反转反转后的数组

Array.sort()

用于将数组的成员按指定顺序进行排序排序后的数组

 Array.join()

        //转字符串
        let arr = [43, 33, 29, 67];
      
      let str = arr.join("-");
      console.log(str)//43-33-29-67

 Array.reverse()

      //   反转
      let arr = [43, 33, 29, 67];
        arr.reverse();

        console.log(arr);//[67, 29, 33, 43]

Array.sort() 

      //排序
        let arr = [43, 33, 29, 67];
      //数字:根据最前面的数字1-9排序,字母根据最前面的数字a-z排序
        arr.sort();
        
        console.log(arr);//[29, 33, 43, 67]

 参考文档:Array - JavaScript Guidebook (tsejx.github.io)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值