我有一个数组。为了进行测试,我将其内容输出如下:
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
答案 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)
使用push
和apply
:
const a1 = ["all", "my", "strings"];
const a2 = ["belong", "together"];
Array.prototype.push.apply(a1, a2);
console.log(a1);