arr的push,pop,slice.....各种使用方法详细介绍

arr的push,pop,slice…各种使用方法

  • arr.push(); 向数组的末尾追加元素

    • 会修改原数组

    • 返回值:修改后的length值

    • 可以追加多个

      arr[1,2,3];
      arr1[4,5,6];
      arr2[...arr,...arr1];       //  ...扩展运算符,将数组展开
      
  • arr.unshift(); 向数组的开头添加元素

    • 会修改原数组
    • 返回值:修改后的length值
    • 可以追加多个
  • arr.pop(); 删除末尾的元素

    • 会修改原数组
    • 返回值:被删除的数据
    • 只能删除一个
  • arr.shift(); 开头删除一个元素

    • 会修改原数组
    • 返回值:被删除的数据
    • 只能删除一个
  • arr.splice(位置,删除元素的个数,要追加的元素); 任意位置添加删除

    • 添加或者删除包含对应下标
    • 添加数据时:删除元素的个数写0;
    • 可以同时删除和添加(先删除,后添加)
    • 修改原数组
  • arr.join(“分隔符”) 使用分隔符将数组数据隔开变为字符串

    • 不修改原数组
    • 返回值是分隔好的字符串
  • arr.slice(截取的起始下标,结束下标) 数组的截取

    • 截取时,包含起始下标,不包含结束下标
    • 不修改原数组
    • 返回值是截取到的数组
    • 参数可以是负数,负数表示倒数,只传一个参数表示从起始下标截取到最后
  • arr.concat 多个数组的连接

    • 不修改原数组

    • 返回值是连接之后的新数组

      var arr1=[1,2,3];
      var arr2=[4,5,6];
      console.log(arr1.concat(arr2,[7,8,9]));
      
      // 控制台输出
      // (9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
      
  • arr.indexOf(值); 查找某个值在数组中第一次出现的下标

    • 返回值是数据的下标,没有找到则返回-1

      var arr=[1,5,6,99,52,663,22,66,552,123,6,622];
      console.log(arr.indexOf(22));    //查找22在arr数组中的位置
      
      // 控制台输出
      // 6
      
  • arr.lastIndexOf(值); 倒叙查找某个值在数组中第一次出现的位置

  • arr.sort() 数组的排序

    • 如果没有参数,则从字符的编码开始按顺序排

    • 如果有参数,这个参数必须是一个函数(回调函数)这个回调函数有两个参数,分别是a,b

    • 修改原数组

    • 返回值是排序之后的数组

      var arr3=[1,5,6,99,52,663,22,66,552,6,622];
      arr3.sort(function(a,b){
      //a-b 正序,
      //b-a 倒序,  
      return a-b;
      })
      console.log(arr3);
      // 控制台输出
      // (11) [1, 5, 6, 6, 22, 52, 66, 99, 552, 622, 663]
      //箭头函数
      arr.sort((a,b)=>a-b)     //正序,
      arr.sort((a,b)=>b-a)     //倒序,
      
      
      //箭头函数
      arr3.sort((a,b)=>{return a-b});
      arr3.sort((a,b)=>a-b);
      
  • arr.forEach() 遍历数组

    • 接收一个回调函数,回调函数第一个参数是 数组值,第二个参数是 下标

      var arr3=[1,5,6,99,52,663,22,66,552,6,622];
      arr3.forEach(function(value,index){
        console.log(index,value)
      })
      // 箭头函数
      arr3.forEach((value,index)=>{console.log(index,value)});
      
  • arr.filter() 过滤(根据条件筛选数组元素)

    • 根据回调函数的返回值进行元素筛选

      • 返回值是true,该元素会保留
      • 返回值是false,该元素跳过
    • 不修改原数组

    • 返回值是筛选之后的数组

      var arr=[1,5,6,99,52,663,22,66,552,123,6,622];
      var newArr =arr.filter(function(value,index){
      return value>100;       //筛选arr数组中值大于100的元素;
      })
      console.log(newArr);
      // 控制台输出
      // (4) [663, 552, 123, 622]
      
      //箭头函数
      var mewArr=arr.filter(v=>v>100);
      
      var person = [
      {name: "张三",age:20,sex: "男"},
      {name: "李四",age:19,sex: "女"},
      {name: "王五",age:22,sex: "男"},
      {name: "赵六",age:21,sex: "女"}
      ];
      var x =person.filter(function(value,index){
      return value.age>20;           // 筛选出年龄大于20岁的学生
      // return value.sex=="男";     //筛选出男同学
      })
      console.log(x);
      // 箭头函数
      arr.filter((value,index)=>{return 判断条件})
      
  • arr.map() 映射 将数组中的所有数据按照条件改变,形成新数组ying

    • 将回调函数每次的返回值,组成一个新的数组

    • 返回值是映射改变之后的数组

    • 不修改原数组

      var arr=[1,5,6,99,52,663,22,66,552,123,6,622];
      // var end=arr3.map(function(value,index){
      //     return value*2;        //将数组中的所有元素都乘以2返回
      // });
      // 箭头函数
      var end = arr.map((value,index)=>value*2);
      console.log(end);
      
  • arr.some() 判断 根据回调函数的判断条件来选择真假

    • 只要有一个回调函数返回值是true,最终some结果是true;

      var arr3=[1,5,6,99,52,663,22,66,552,123,6,622];
      var end=arr3.some(function(value,index){
      return value<500;
      });
      console.log(end);     //true
      
      //箭头函数
      var end=arr3.some(v=>{v<500});
      
  • arr.every() 判断 根据回调函数的判断条件来选择真假(与some比较记忆)

    • 只要有一个回调函数返回值是false,最终every结果是false;

      var arr3=[1,5,6,99,52,663,22,66,552,123,6,622];
      var end=arr3.every(function(value,index){
      return value<500;
      });
      console.log(end);     //false
      
      //箭头函数
      var end=arr3.some(v=>{v<500});
      
  • arr.reverse() 数组倒序

    • 返回修改后的数组

    • 改变原数组

      var arr=[1,5,8,6,9,4,2,3];
      console.log(arr.reverse());     // (8) [3, 2, 4, 9, 6, 8, 5, 1]
      console.log(arr);               // (8) [3, 2, 4, 9, 6, 8, 5, 1]
      
  • Array.from

    • Array.from方法用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象(包括 ES6 新增的数据结构 Set 和 Map)

      var a={length:2,0:'aaa',1:'bbb'};  
      Array.from(a);        //['aaa','bbb']
      // 原理:Array.prototype.slice.call(a);
      var b={length:2};  
      Array.from(b);       //[undefined.undefined]
      
  • Array.of

    • Array.of方法用于将一组值,转换为数组。

    • Array.of总是返回参数值组成的数组。如果没有参数,就返回一个空数组。

      Array.of() // []
      Array.of(undefined) // [undefined]
      Array.of(1) // [1]
      Array.of(1, 2) // [1, 2]
      
  • arr.includes()

    • 用于检查数组是否包含某元素,包含返回true,否则返回false

    • 无法检测对象是否存在

    • 假如只想知道某个值是否在数组中而并不关心它的索引位置,建议使用

      includes()。如果想获取一个值在数组中的位置,那么你只能使用indexOf方法。并且includes()可以识别NaN

      var arr = [1,2,{name:"张三"}]
      arr.includes(2)     // true
      arr.includes(4)     // false
      arr.includes({name:"张三"})     // false
      
    • 可接收俩个参数:要搜索的值,搜索的开始索引

      ['a', 'b', 'c', 'd'].includes('b')         // true
      ['a', 'b', 'c', 'd'].includes('b', 1)      // true
      ['a', 'b', 'c', 'd'].includes('b', 2)      // false
      
    • 此方法为 ES7新增,兼容性##

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值