将数组项复制到另一个数组中

2022-08-29 22:06:51

我有一个JavaScript数组,我想把它推到一个新的数组中。除了我不想成为.我想将所有项目都推入新数组:dataArraynewArraynewArray[0]dataArray

var newArray = [];

newArray.pushValues(dataArray1);
newArray.pushValues(dataArray2);
// ...

甚至更好:

var newArray = new Array (
   dataArray1.values(),
   dataArray2.values(),
   // ... where values() (or something equivalent) would push the individual values into the array, rather than the array itself
);

因此,现在新数组包含各个数据数组的所有值。有没有一些速记可用,所以我不必迭代每个人,逐个添加项目?pushValuesdataArray


答案 1

使用 concat 函数,如下所示:

var arrayA = [1, 2];
var arrayB = [3, 4];
var newArray = arrayA.concat(arrayB);

的值将是 ( 并保持不变; 为结果创建并返回一个新数组)。newArray[1, 2, 3, 4]arrayAarrayBconcat


答案 2

在 ECMAScript 6 中,您可以使用 Spread 语法

let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);

console.log(arr1)

跨页语法在所有主流浏览器(IE11 除外)中都可用。有关当前兼容性,请参阅此(持续更新)兼容性表

但是,请参阅下面的Jack Giffin的回复,以获取有关性能的更多评论。它似乎仍然比点差运算符更好,更快。concat