那些我们该知道的数组操作

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

  数组的一些简单属性。

  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]);
    }
         
  }
  
 

 

 

 

 

 

 

  

 

原文地址:https://www.cnblogs.com/cokkie/p/6033193.html