zoukankan      html  css  js  c++  java
  • 数组常用的方法

    数组在平常的coding中比较常用的数据格式,除此之外,还有字符串和对象,有时间也会来和大家分享!请动动手指关注我吧!

    一、创建数组   x=[ ]

      var a=["333","999"];       // 直接写在[ ]中
    var aa=new Array(4,8,9); // 通过实例传入Array中
    var aaa=new Array(5); // 传入的5为array的个数 aaa[0]=6; // 给aaa的第0个赋值为6
    console.log(aaa);
    => [6,,,,,]
    console.log(aa);
    => [4,8,9]

    二、 访问数组元素    x.[index]

      var a=["333","999"];
    var b=a[0]; // 访问数组的第一个元素
    var c=a[a.length-1]; // 访问数组的最后一个元素 var f=a["1"]===a[1]; // a["1"]会自动转为数字1
    console.log(f);
    => true

    当然,如果我们通过以下方式去访问时,会被解析成连续运算返回最后一个值
      console.log([2,3,4,5][1,2])   =>4
     
    数组也是一种特殊的对象,因此我们也可以通过键值对的形式去访问
        var arr9 = [];

        arr9.say = 'Hello';

        console.log(arr9.say)    =>Hello

    三、遍历数组      x.forEach(function(item,index,array){})

     es6写法   forEach((item,index)=>{dosomething.....})
     
    var a=["333","999"];
    a.forEach(
    function (item,index,array) {
    console.log(item,index)
    });
    //333 0 //999 1

    四、添加元素到数组的末尾 x.push(...)

      var a=["333","999"];
    
      a.push("我是新元素","666");  
    console.log(a); //["333","999","我是新元素","666"]
      console.log(a.push("我","690"),a.length,a); //6,["333","666","我是新元素","666","我","690"]

    //返回新数组长度6,会执行一次a.push

    五、在末尾删除数组(只能删除1个) x.pop()

       var a=["333","999"];
    a.pop();
    console.log(a);
    => ["333"]; 返回新数组
    console.log( a.pop(),a);
    =>333 [] 会执行一次a.pop(),返回本次被删除元素

    六、删除数组最前面元素 x.shift()

     var a=["333","999"];
    a.shift();
    console.log(a); =>["999"]
    console.log( a.shift()); =>"999"

    //返回被删除元素,不会执行a.shift()

    七、添加到数组的前面(头部) x.unshift("...")

    var a=["333","999"];
    a.unshift(
    "000","888","777");
    console.log(a);
    => ["000","888","777","333","999"]
    console.log(a.unshift(
    "111"),a.length,a); => ["111","000","888","777","333","999"]

    //会执行一次a.unshift,返回数组长度,

    八、找到某个元素在数组中的索引 indexOf

       var a=["333","999"];
    var d=a.indexOf("333"); //通过元素查找在当前数组的索引值
    console.log(d);
    =>0

    var e=a.indexOf("654"); //如果查不到返回-1
    console.log(e); =>-1

    九、复制数组  slice()  Array.from()  [...]

     var a=[1,2,8]; 

    var newArray=a.slice();
    console.log(newArray);
    //第一种方法 [1,2,8]

    var newArray2=Array.from(a);
    console.log(newArray2);
    //第二种方法 [1,2,8]

    var newArray3=[...a];
    console.log(newArray3);
    //第三种方法 [1,2,8]

    十、清空数组

    两种方法都可以实现,但第二种比较优雅

    var
    arr=[1,2,3,3,4,5]; arr=
    []; console.log(arr) //[]

    ------------------------------------

    var arr=[888,99];

    arr.length=0;

    console.log(arr) //[]


    十一、合并数组 

    var arr=[1];
    
    var arr2=[2];
    
    var arr3=[3];
    
    var arr4=arr.concat(arr2,arr3) 
    
    console.log(arr4)     =>[1,2,3]

    ---------------------------------------
    下面这个方法也可以实现,但只能合并两个数组

      var arr1=[1,2,3];
    
    
       var arr2=[4,5,6];
    
    
           arr1.push.apply(arr1,arr2);
    
    
       
    console.log(arr1);
     

    十二、在数组中找到最大值和最小值

      //方法1
      var array1 = [1,2,3,4];
      var array2 = Math.max.apply(null,array1);  //最大值
    var array3 = Math.min.apply(null,array1); // 最小值
    console.log(array2,array3); //
    =>4 ,1 //方法2 var array4 =Math.max(...array1); //最大值
    var array5 =Math.min(...array1); //最小值
    console.log(array4,array5); //
    =>4 ,1

    十三、判断是不是数组

       在javascript中,如何判断一个变量是否是数组
    
    (1)Array.isArray()方法
    
        var a = [0, 1, 2];
    console.log(Array.isArray(a));
    // true (2)typeof toString 方法 由于低版本的IE不支持ES5,如需要兼容,用typeof,我们都知道,数组是特殊的对象,所以数组的typeof结果也是object,而因为null的结果也是object,所以需要加判断 是 object 同时排除 null、排除纯对象,先判断a是不是object,并且a!==null, 并且toString.call判断a等于 [object Array]
       var a = [0, 1, 2];  
      console.log( typeof a ==='object' &&  a !==null  &&  Object.prototype.toString.call(a) ==='[object Array]');   => true

    十四、数组与其他值的运算(使用"+"会自动转为string  "-"会自动转为number)

    数组和任何值相加都会将数组转换成字符串再进行拼接
    console.log([
    1,2,3] + 6) ; => "1,2,36" console.log([1,2,3] + {}) ; =>"1,2,3[object Object]" console.log([1,2,3] + [1,2,3]); =>"1,2,31,2,3" 如果数组只有一个值,那么当这个数组和其他值相减相乘等时会被转换为数字,如果为空会被转换为0 console.log([5] - 2) =>3

    十五、数组去重

    
    ES6新增的Set数据结构,类似于数组,但是里面的元素都是唯一的 ,其构造函数可以接受一个数组作为参数
    let arr1
    =[1,2,1,2,6,3,5,69,66,7,2,1,4,3,6,8,9663,8]
    let set
    = new Set(arr1);

    console.log(set)
    =>{1,2,6,3,5,69,66,7,4,8,9663,8]
    
    ES6中Array新增了一个静态方法from,可以把类似数组的对象转换为数组
      var arr=[1,2,1,2,6,3,5,69,66,7,2,1,4,3,6,8,9663,8]
    
    
      console.log(Array.from( new Set(arr)))   =>{1,2,6,3,5,69,66,7,4,8,9663,8]

     

     函数去重:  
        function removeRepeatArray(arr){      return Array.from(new Set(arr))     }     console.log(removeRepeatArray([1,5,9,8,6,2,5,1,2,5,8,65,3,5,5,2,2,5]))
    =>[1, 5, 9, 8, 6, 2, 65, 3]
  • 相关阅读:
    试说明一级文件索引结构、二级文件索引结构是如何构造的。
    文件物理结构的比较
    文件的物理结构
    什么是索引文件,要随机存取某一记录时需经过几步操作?
    对文件的存取有哪两种基本方式,各有什么特点?
    文件的逻辑结构有哪两种形式?
    文件组织的两种结构
    WebService或HTTP服务端接收请求转发消息到另一个服务端-实现思路
    Eclipse报Caused by: java.lang.OutOfMemoryError: PermGen space解决思路
    树莓派2操作记录(有记录才能沉淀...)
  • 原文地址:https://www.cnblogs.com/christineqing/p/7693069.html
Copyright © 2011-2022 走看看