Array.push()无法正常工作

时间:2018-07-30 14:28:07

标签: javascript arrays node.js

我有一个数组。为了进行测试,我将其内容输出如下:

for (var i=0; i<array1.length; i++){
        console.log(i + ':' + array1[i]);
    }


0:String1
1:String2

现在我有了第二个数组。我想做的是将array1的内容推入array2。

我通过以下代码执行此操作:

array2.push(array1);

不幸的是,第一个数组的内容仅存在于第二个数组的一个索引中。用逗号分隔。

例如,如果我们在执行操作后使用view第二个数组的内容,它将是这样的:

for (var i=0; i<array1.length; i++){
        console.log(i + ':' + array1[i]);
    }


0:Old_string1
1:Old_string2
2:Old_string3
3:Old_string4
4:String1,String2

我想在外面玩这个

4:String1
5:String2

5 个答案:

答案 0 :(得分:5)

您应该尝试:

array2 = array2.concat(array1);

或具有ES6销毁功能

array2.push(...array1);

答案 1 :(得分:3)

Array.push不这样做。您需要Array.concat

if(document.URL.indexOf("lpt") >= 0 && document.cookie.indexOf("organic") < 0){ 
    document.cookie = "ppc_campaign=this will be the url; expires=Thu, 18 Dec 2018 12:00:00 UTC; path=/";
    }
    else {
    document.cookie = "organic=this will be the url; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
    }

答案 2 :(得分:3)

array.push将一个或多个对象推入数组。您不能在push()方法中传递完整的数组,否则内容将被计为一个对象。要将两个数组合并为一个,请使用concat。

答案 3 :(得分:1)

您应该使用扩展运算符(...)破坏array1中保存的值,并将其推入array2中。像这样:

array2.push(...array1);

这会将strings中保存的所有array1分离为单个值,然后将其推入。ES6中引入了一些语法糖。

答案 4 :(得分:1)

使用pushapply

const a1 = ["all", "my", "strings"];
const a2 = ["belong", "together"];
Array.prototype.push.apply(a1, a2);
console.log(a1);