JavaScript基础之数组方法

  1. 截取指定下标的数组或者字符串
    1. slice();截取指定下标的数组或者字符串元素。
    2. 不会修改源数组或者字符串
    3. 语法:slice(开始下标,结束下标)
    4. 如果结束下标未被规定,那么会选取从开始下标到数组结尾的所有元素。
    5. 返回一个包含从开始到结束下标(包头不包尾)的新数组或者字符串
    6. 可使用负值从数组尾部选取元素
    7.  var array5=["魏国","曹操","典韦","张郃","张辽","司马懿","郭嘉"];
       var cutArr1=array5.slice(0,3);//表示从第一个数组元素开始"魏国"到第四个数据元素"张郃"为止
       var cutArr2=array5.slice(2);//表示第三个数组元素"典韦"开始到结束
       var cutArr3=array5.slice(-5);//从右往左:-7,-6,-5,-4,-3,-2,-1
       // 从-5到-1截取数据
  2. 查找指定元素的下标
    1. indexOf()查找指定元素的下标,从前往后查找
    2. 若有重复的,则返回第一个查到的下标
    3. 若不存在则返回-1
    4. var array6=["郭嘉","魏国","曹操","典韦","张郃","张辽","司马懿","郭嘉"];
      var seekArr1=array6.indexOf("郭嘉");//返回数组元素第一个郭嘉的下标
      var seekArr2=array6.lastIndexOf("郭嘉");//返回最后一个出现郭嘉的下标
  3. 合并数组以及反转数组
    1. concat()方法用于连接两个或者多个数组
    2. 该方法会先创建当前数组的一个副本,不会改变原有的数组,会返回新数组
    3. var array6=["郭嘉","魏国","曹操","典韦","张郃","张辽","司马懿","郭嘉"];
      var array7=["魏国","蜀国","吴国"];
      var array8=["关羽","马超","张飞","黄忠","赵云"];
      var newArr78=array7.concat(array8);//表示数组array7后面添加数组array8
      var newArr678=array6.concat(array7,array8);//表示数组array6后面依次添加array7,array8
    4. reverse();反转数组元素的顺序
    5. 该方法会改变原来数组,不会创建新数组
    6. 返回值不是新数组而是当前数组的引用
    7. var array8=["关羽","马超","张飞","黄忠","赵云"];
      array8.reverse();//["关羽", "马超", "张飞", "黄忠", "赵云"]
  4. 数组元素排序
    1. sort();用于对数组的元素进行排序
    2. 默认:按照升序序列数组项,即最小值位于最前面,最大值在后面
    3. 会直接修改元数组
    4. sort()方法会转换成字符串再比较,并从第一个字符开始比较
    5.         var array9=[1,3,-2,0,22,-3];
              var array10=['a','d','c','z','g'];
              var array11=[33,1,3,92,10];
              array11.sort();//[1, 10, 3, 33, 92]
              array9.sort();//[-2, -3, 0, 1, 22, 3]
              array10.sort();//["a", "c", "d", "g", "z"]
  5. 数组元素过滤
    1. filter() 把数组中某些元素过滤掉,然后返回剩下的元素,接收的是一个回调函数
    2. 数组每一项运行给定函数,返回满足过滤条件组成的新数组
    3. 不会改变源数组
    4. var arr1 = [1,2,3,4,5,6,7,8,9,10];            
                  function abc(x){
                      return x>6;
                  };            
                  //保留大于6的数组元素
                  var arr2 = arr1.filter(abc);  //[7,8,9,10]            
                  function bcd(x){
                      return x%2 == 1;
                  };            
                  //保留数组中的奇数元素
                  var arr3 = arr1.filter(bcd);   //[1,3,5,7,9]
  6. 数组元素遍历去重复
    1. 建立一个新数组,然后去遍历循环去重的数组,每次判断新数组不包含旧数组的值(新数组用indexOf方法检索旧数组的值返回结果等于-1)将该值加入新数组。
    2.             var arr1 = [1,1,2,2,3,3];  //[1,2,3]            
                  function qcf(arr){
                      var abc=[];
                      for(var i=0; i<arr.length;i++){
                          if(abc.indexOf(arr[i]) == -1){
                              abc.push(arr[i]);
                          };    
                      };
                      return abc;
                  };            
                  var arr2 = qcf(arr1);            
                  console.log(arr2);  //[1,2,3]
  7. 使用set方法去重复
    1. set数据类型:ES6提供了新的数据结构Set。
    2. 它类似于数组,但是成员的值都是唯一的,没有重复的值。
    3. 数组转set
      1. var arr1 = [1,1,2,2,3,3];
      2.  var set = new Set(arr1); //[1,2,3]
    4. set转数组
      1. var arr1 = [1,1,2,2,3,3];
      2.  var arr2 = Array.from(set);//[1,2,3]
    5. has()判断一个值是否存在set中,返回布尔值存在即true,否则false
      1. ​​​​​​​console.log(set.has(2));  //true
        console.log(set.has(5));  //false
  8. 数组并集,交集,差集
    1. var arr1=[1,2,3];
    2.  var arr2=[2,3,4];
    3. var a = new Set(arr1);
    4. var b = new Set(arr2);
    5. 并集:a+b再把重复去掉  [1,2,3,4]
      1. var un = new Set([...a,...b]);  //[1,2,3,4]
                    console.log(un);
    6. 交集:a和b共同的部分[2,3]
      1. var is = new Set([...a].filter(x=> b.has(x)));//[2,3]
                    console.log(is);
    7. 差集:a-b [1]
      1. var df = new Set([...a].filter(x=> !b.has(x)));//[1]
                    console.log(df);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值