如何在JavaScript中将数组作为项目添加到另一个数组中

如何在JavaScript中将数组作为项目添加到另一个数组中,javascript,arrays,Javascript,Arrays,假设我创建了一个数组,如下所示: var arr1 = ['one', 'two', 'three']; 现在,我想创建另一个数组,如下所示: var arr2 = [arr1, 'four', 'five'] 以下是arr2的内容: [Array(3), "four", "five"] 那不是我想要的。我希望内容如下所示: ['one', 'two', 'three', 'four', 'five'] var array1 = [1,2,3], array2 = [3, 4,

假设我创建了一个数组,如下所示:

var arr1 = ['one', 'two', 'three'];
现在,我想创建另一个数组,如下所示:

var arr2 = [arr1, 'four', 'five']
以下是arr2的内容:

[Array(3), "four", "five"]
那不是我想要的。我希望内容如下所示:

['one', 'two', 'three', 'four', 'five']
var
  array1 = [1,2,3],
  array2 = [3, 4, 5];

  array2.unshift(...array1);

  // array2 = [1,2,3,4,5,6]
  // array1 = [1, 2, 3]
我该怎么做


注意,我不是在寻找一个像concat这样的函数,而是一种将arr1列为arr2中的一项的方法,这样arr1中的所有项都将作为单个项添加到arr2中,我希望这是有意义的

感谢您提供的任何帮助。

使用ES6。。。你完全可以做到

扩展语法允许在需要函数调用的多个参数、数组文本的多个元素或分解赋值的多个变量的地方扩展表达式

var arr1=['1','2','3']; var arr2=[…arr1,'四','五'] console.logarr2更新:现在问题已更改,此解决方案不再提供问题

您可以使用concat进行以下操作:

var arr1 = ['one', 'two', 'three'];
var arr2 = arr1.concat(['four', 'five', 'six']);
哪个输出

["one", "two", "three", "four", "five", "six"]

如果您正在使用新版本的JS。你可以这样做:

['one', 'two', 'three', 'four', 'five']
var
  array1 = [1,2,3],
  array2 = [3, 4, 5];

  array2.unshift(...array1);

  // array2 = [1,2,3,4,5,6]
  // array1 = [1, 2, 3]
实现这一目标的途径:

一,。ES6方法:无论参数的数量或类型如何,它都将创建一个参数数量可变的新数组

常数arr1=['1','2','3']; const arr2=数组中的…arr1、'四'、'五';
console.logarr2;注意,我不是在寻找一个像concat这样的函数,而是一种将arr1列为arr2中的一项的方法,这样arr1中的所有项都将作为单个项添加到arr2中,我希望这是有意义的。->那你真的想要康卡特。。。Concat合并阵列。文章中的第二个片段将数组作为一项添加到数组中。不能同时执行这两项操作。使用ES2015/ES6->arr2=[…arr1,'four','five']@JeffHuijsmans concat将返回一个新数组。他们希望将项目放入arr2,而不是创建新数组。@George啊,感谢您的澄清。时间不早了。@Nenad谢谢,这正是我所需要的。使用这个有什么好处吗?@George如果你像这样使用unshift,它将添加整个数组,而不是每个元素,但是如果您将它与这样的扩展语法一起使用,那么为什么要使用unshift@NenadVracar如果你像在例子中那样使用unshift,它会给你答案中链接的文档。我只是想知道使用spread操作符是否比unshift(即速度/兼容性)有什么好处etc@evolutionxbox谢谢