2016-11-18 209 views
-3

我有以下数组。将阵列推入另一个阵列

var arr1=[1,2,3]; 
var arr2=[4,5,6]; 
var arr3=[]; 

如何将推动ARR1和ARR2成ARR3使得结果是:

arr3=[[1,2,3],[4,5,6]]; 

不被使用.concat方法时产生

arr3=[1,2,3,4,5,6]; 

+5

使用'push()'??? – epascarello

+1

你是如何设法首先得到结果'[1,2,3,4,5,6]'......? – deceze

+0

jee wiz我很喜欢它。我在返回语句中使用了push()。 – valzavagoth

回答

5

var arr1=[1,2,3]; 
 
var arr2=[4,5,6]; 
 
var arr3=[]; 
 
arr3.push(arr1,arr2); 
 
console.log(arr3);

1
var arr1=[1,2,3]; 
var arr2=[4,5,6]; 
var arr3 = [arr1,arr2]; 
console.log(arr3); 
0

您可以在其他的答案中使用push()像或本:

var arr1 = [1,2,3]; 
var arr2 = [4,5,6]; 
var arr3 = [arr1, arr2]; 
console.log(arr3); 
0

由于其他用户发布,在你的问题的解决方案是使用.push()方法,但我会尝试给你更多关于这两种方法的信息。

我建议你看看这个article,对我来说非常有用;我在下面回顾了你的主要信息。当要添加一种或多种元素,即分别为输入参数

推送方法

Push方法被使用,给调用方法的阵列。

甲简单地例子如下:

var first_array = [1, 2, 3]; 
var result = first_array.push(4, 5, 6); 
console.log(result); // 6 
console.log(first_array); // [1, 2, 3, 4, 5, 6] 

的一两件事是不会立即显现的是,它增加新的值,而不是修改后的数组后返回数组的长度。 (检查第三行:console.log(result);

concat方法

虽然推改变返回与原来的阵列的新的数组与阵列/秒或值/ s的接合调用它的阵列,的concat那作为参数提供。

有几件事要注意关于concat以及它如何创建返回的数组。

字符串和数字都被复制到数组中,这意味着如果原始值发生更改,新数组中的值将不受影响。

这不适用于对象。

不是将对象复制到新数组中,而是复制引用。这意味着如果对象的值在一个数组中改变,它们也将在另一个数组中改变,因为它们是对象而不是唯一副本的引用。

一个简单的例子如下:

var test = [1, 2, 3]; // [1, 2, 3] 
var example = [{ test: 'test value'}, 'a', 'b', 4, 5]; 
var concatExample = test.concat(example); // [1, 2, 3, { test: 'test value'}, 'a', 'b', 4, 5] 
example[0].test = 'a changed value'; 
console.log(concatExample[3].test); // Object { test: "a changed value"} 
example[1] = 'dog'; 
console.log(concatExample[4]); // 'a' 

我已经为您创建了fiddle这个例子。

我希望这会有帮助