美文网首页
JavaScript 连接两个或多个数组的方法

JavaScript 连接两个或多个数组的方法

作者: 黄怼怼 | 来源:发表于2017-08-18 13:22 被阅读0次

    在JavaScript中数组的reduce()方法文章中曾扩展了一个concat()的用法,现在详细记录一下。
    定义和用法
    concat() 方法用于连接两个或多个数组。
    该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

    语法

    arrayObject.concat(arrayX,arrayX,......,arrayX)
    

    参数描述
    arrayX必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。

    var a = [0,1,2,3];
      document.write(a.concat(4,5));
        //输出结果为0,1,2,3,4,5
    
    var a = [1,2];
    var b = [4,5,6];
    document.write(a.concat(b));
    //1,2,3,4,5,6
    

    返回值
    返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。


    复习数组对象

    数组对象是使用单独的变量名来存储一系列的值。
    数组对象的作用是:使用单独的变量名来存储一系列的值。

    如果你有一组数据(例如:动物),存在单独变量如下所示:

    var animal1="rabbit";
    var animal2="lion";
    var animal3="cat";
    

    数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。
    数组中的每个元素都有自己的的ID,以便它可以很容易地被访问到。

    创建一个数组
    创建一个数组,有三种方法。
    下面的代码定义了一个名为 myCars的数组对象:
    1: 常规方式:

    var myCars=new Array(); 
        myCars[0]="Saab";    
        myCars[1]="Volvo";
        myCars[2]="BMW";
    

    2: 简洁方式:

    var myCars=new Array("Saab","Volvo","BMW");
    

    3: 字面:

    var myCars=["Saab","Volvo","BMW"];
    

    访问数组
    通过指定数组名以及索引号码,你可以访问某个特定的元素。
    以下实例可以访问myCars数组的第一个值:
    var name=myCars[0];

    以下实例修改了数组 myCars 的第一个元素:
    myCars[0]="Opel";

    [0] 是数组的第一个元素。[1] 是数组的第二个元素。

    在一个数组中你可以有不同的对象
    所有的JavaScript变量都是对象。数组元素是对象。函数是对象。
    因此,你可以在数组中有不同的变量类型。
    你可以在一个数组中包含对象元素、函数、数组:

    myArray[0]=Date.now;
    myArray[1]=myFunction;
    myArray[2]=myCars;
    

    数组方法和属性
    使用数组对象预定义属性和方法:

    var x = myCars.length           
      // myCars 中元素的数量var y=myCars.indexOf("Volvo") 
      // "Volvo" 值的索引值
    

    注:文章中的定义等专业概念来自W3school 及 http://www.runoob.com 网站。

    那么push()和concat()有何区别呢?

    push 的定义是:向数组的末尾添加一个或更多元素,并返回新的长度。该方法会改变数组的长度。

    <script type="text/javascript">
    
    var arr = new Array(3)
    arr[0] = "a"
    arr[1] = "b"
    arr[2] = "c"
    
    document.write(arr + "<br />")   //a,b,c
    document.write(arr.push("d") + "<br />") //4
    document.write(arr) //a,b,c,d
    
    </script>
    

    concat 的定义是:连接两个或更多的数组,并返回结果。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

    var a = [1,2];
    
    document.write(a.concat(3,4,5));
    //1,2,3,4,5
    
    document.write(a.push(3,4,5));
    //5
    

    区别:

    var a = [1,2];
    
    document.write(a.concat([3,4,5]));
    //1,2,3,4,5
    
    document.write(a.push([3,4,5]));
    //3
    

    push 遇到数组参数时,把整个数组参数作为一个元素;而 concat 则是拆开数组参数,一个元素一个元素地加进去。
    push 直接改变当前数组;concat 不改变当前数组。

    相关文章

      网友评论

          本文标题:JavaScript 连接两个或多个数组的方法

          本文链接:https://www.haomeiwen.com/subject/yxaorxtx.html