JavaScript取消对每个数组元素的移位

JavaScript取消对每个数组元素的移位,javascript,jquery,arrays,knockout.js,Javascript,Jquery,Arrays,Knockout.js,我有两个包含对象的数组arr1和arr2。如果我取消移位arr1以包含arr2的元素,则这些元素不会单独追加到arr1中,而是在开头追加整个数组(arr2),例如: arr1 = [{ele:1}, {ele:2}] arr2 = [{ele:3}, {ele:4}] 我得到:arr1=[[{ele:3},{ele:4}],{ele:1},{ele:2}] 请注意内部的整个阵列,而不是其对象 我想要:arr1=[{ele:3},{ele:4},{ele:1},{ele:2}] 我的数组是ko.

我有两个包含对象的数组<代码>arr1和
arr2
。如果我取消移位
arr1
以包含
arr2
的元素,则这些元素不会单独追加到
arr1
中,而是在开头追加整个数组(
arr2
),例如:

arr1 = [{ele:1}, {ele:2}]
arr2 = [{ele:3}, {ele:4}]
我得到:
arr1=[[{ele:3},{ele:4}],{ele:1},{ele:2}]

请注意内部的整个阵列,而不是其对象

我想要:
arr1=[{ele:3},{ele:4},{ele:1},{ele:2}]

我的数组是ko.observableArray(),也许这会有所不同?

好了:

[].unshift.apply(arr1,arr2)

好了:


[].unshift.apply(arr1,arr2)

也许这会简单一点

let arr1 = [{ ele: 1 }, { ele: 2 }];
let arr2 = [{ ele: 3 }, { ele: 4 }];
for (const iterator of arr2) {
  arr1.unshift(iterator);
}

也许这会简单一点

let arr1 = [{ ele: 1 }, { ele: 2 }];
let arr2 = [{ ele: 3 }, { ele: 4 }];
for (const iterator of arr2) {
  arr1.unshift(iterator);
}

嗯,unshift只是将值前置到数组中。如果取消移位数组,只需将数组作为第一个元素插入即可。@FelixKling是否有其他方法可以将数组的所有元素附加到另一个元素中而不循环?是的,正如X先生所示。取消移位只是将值前置到数组中。如果取消移动数组,只需将数组作为第一个元素插入即可。@FelixKling是否有其他方法可以将数组的所有元素附加到另一个元素中而不循环?是的,正如X先生所示。回答很好,您必须查看此文档。解释会使回答对OP和未来的访问者更有用。回答很好,您必须查看此文档,解释将使答案对OP和未来的访问者更有用。