通过引用从一个数组推送到另一个数组

时间:2014-12-17 17:28:57

标签: javascript arrays reference pass-by-reference

鉴于这个小提琴,有没有人建议我如何更新array1的索引?或者更重要的是,任何想法如何使array2的索引引用array1的索引?

http://jsfiddle.net/y8rs56r3/

    var array1 = [
        {num:"one"},
        {num:"two"},    
        {num:"three"}
    ];
    var array2 = [];
    var i = array1.length;
    while(i--){
        if(i!=1)array2.push(array1[i]);
    }

    array2[0].num = "one updated";
    console.log(array2);
    console.log(array1);

显然,在此代码块中,array1 [0]未更新。

1 个答案:

答案 0 :(得分:1)

因为你的数组是一组对象,所以尝试这样:

  var array1 = [
              {num:"one"},
              {num:"two"},    
              {num:"three"}
          ];
       var array2 = [];
         for(x in array1){
                   array2.push(array1[x]);
                    }
          array2[0].num = "one updated";
          console.log(array2);//output  [Object { num="one updated"}, Object { num="two"}, Object { num="three"}]
          console.log(array1);// output  [Object { num="one updated"}, Object { num="two"}, Object { num="three"}]