zoukankan      html  css  js  c++  java
  • 那些我们该知道的数组操作

    ---恢复内容开始---

      数组的一些简单属性。

      1. 数组的插入和删除

        push() 插入数组的尾部,可以插入任意数量的参数(但是要逐个的插入数组,要不然会把插入的多个参数当成一个解析),返回修改后数组的长度。

        pop() 删除数组的最后一个元素,减少数组的length值,然后返回移除后的数组。

        unshift() 将元素逐个插入到数组的头部。

        shift() 从数组的头部删除。

      2. 数组的排序

      reverse() 将数组逆向排序(仅仅是逆向排序,并没有进行大小的排序)。改变了原数组。

      例:var arr = [3,8,9,1,4];

        console.log(arr.reverse());  //输出结果是   [4,1,9,8,3]

      sort() 将数组从小到大排序,原数组也升序排序了。

      例:var arr = [3,8,9,1,4]

        console.log(arr.sort());   //输出结果是  [1,3,4,8,9]

      还可以这样做:

        arr.sort(function(a,b){return a-b;})
        a-b为升序输出,b-a为降序输出;
     
      3. 数组的合并
     
      concat() 追加数据,创建一个新的数组,不改变原数组(字符串为拼接)。
      
      4. 数组中数据的提取
     
      slice() 不修改原数组,将原数组中的制定区域数据提取出来。slice[start,end);
      var arr = [2,5,8,0,"小丸子","大白"];
      var arr2 = arr.slice(1,3); //(1,3) 表示的是下表区域:[1,3);
      console.log(arr); // arr = [2,5,8,0,"小丸子","大白"];
      console.log(arr2); // arr2 = [5,8];
     
      5.数组中最重要的
      
      splice() 截取原数组中指定的数据,会改变原数组。
     
      a> 两个参数表示删除操作:splice(start,length);
     
      var arr = [2,5,8,0,"小丸子","大白"];
      var arr2 = arr.splice(4,2); //第一个参数表示要开始截取的下标位置,第二个参数表示截取的长度。
      console.log(arr); // arr = [2,5,8,0];
      console.log(arr2); // arr2 = ["小丸子","大白"];
      
      b> 三个或以上参数,且第二个参数为0,表示插入 splice(start,0,数据,数据,..);
     
      var arr = [2,5,8,0,"小丸子","大白"];
      arr.splice(1,0,"冬瓜","荔枝"); //在下表为1的位置插入。
      console.log(arr); // arr = [2,5,1,0,"冬瓜","荔枝",8,0,"小丸子","大白"];

      c> 如果有3个或以上的参数,且第二个参数不为0,则表示替换。 splice(start,length,数据,数据,..);

       var arr = [2,5,8,0,"小丸子","大白"];

       arr.splice(1,1,"青蛙","蜘蛛");

      console.log(arr);     // arr = [2,"青蛙","蜘蛛",8,0,"小丸子","大白"];

     

      5. 数组比较:([] == []) //返回false,他们的物理地址不一样。

     

      6. 通过不引入第三个变量,将两个数位置颠倒。

      例:
        
         arr[2]=arr[2]+arr[3];
             arr[3]=arr[2]-arr[3];
             arr[2]=arr[2]-arr[3];
     
      7. 数组的去重
      1.先排序
        arr.sort();
        var newArr = [];
        for(var i=0;i<arr.length;i++)
        {
          if(arr[i] != arr[i+1])
          {
            newArr.push(arr[i]);
          }
        }
     
      
        2. 关联数组,定义对象,判断数组值在对象属性值中是否为空
        var arr=[1,2,3,3,4,5,3,4,5]
        var h={ };
        var r=[ ];
        for(i=0;i<arr.length;i++)
        {
             if(!h[arr[i]])
          {
            r.push(arr[i])
                   h[arr[i]]=true
          }  
                
        }
     
      3.
      for (var i=0;i<arr.length-1;i++)
      {
        for(var j=i+1;j<arr.length;j++)
        {
          if(arr[i] == arr[j])
          {
            arr.splice(j,1);
            j--;
          }
        }
      }
      
      4.利用index.of
      
      for(i=0;i<arr.length;i++)
      {
           if(r.indexof(arr[i])==-1)
        {
          r.push(arr[i]);
        }
             
      }
      
     

     

     

     

     

     

     

      

     

  • 相关阅读:
    Linux的安装(虚拟机环境)与基础配置
    爬虫之proxy(代理)
    爬虫之UserAgent
    爬虫之urllib.error模块
    【React自制全家桶】五、React组件的生命周期函数详解
    【React自制全家桶】四、React中state与props的分析与比较
    【React自制全家桶】三、React使用ref操作DOM与setState遇到的问题
    【React自制全家桶】二、分析React的虚拟DOM和Diff算法
    小程序API:wx.showActionSheet 将 itemList动态赋值
    解决json_encode中文乱码问题
  • 原文地址:https://www.cnblogs.com/cokkie/p/6033193.html
Copyright © 2011-2022 走看看