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]
  • 相关阅读:
    使用 ASP.NET Core MVC 创建 Web API(五)
    使用 ASP.NET Core MVC 创建 Web API(四)
    使用 ASP.NET Core MVC 创建 Web API(三)
    使用 ASP.NET Core MVC 创建 Web API(二)
    使用 ASP.NET Core MVC 创建 Web API(一)
    学习ASP.NET Core Razor 编程系列十九——分页
    学习ASP.NET Core Razor 编程系列十八——并发解决方案
    一个屌丝程序猿的人生(九十八)
    一个屌丝程序猿的人生(九十七)
    一个屌丝程序猿的人生(九十五)
  • 原文地址:https://www.cnblogs.com/christineqing/p/7693069.html
Copyright © 2011-2022 走看看