在JavaScript中,如何将一个对象数组与另一个对象数组合并?
在循环中,我尝试合并两个数组的内容:在JavaScript中,如何将一个对象数组与另一个对象数组合并?,javascript,arrays,json,object,Javascript,Arrays,Json,Object,在循环中,我尝试合并两个数组的内容: var myArray = [{a:"a"},{b:"b"}];//first pass in loop var myArray = [{c:"c"},{d:"d"}];//second pass in loop 对于结果,我希望有以下内容: results = [{a:"a"},{b:"b"},{c:"c"},{d:"d"}]; 如果我每次都这样做: results.splice(0,0,array[i]); 然后,results数组成为两个数组的集
var myArray = [{a:"a"},{b:"b"}];//first pass in loop
var myArray = [{c:"c"},{d:"d"}];//second pass in loop
对于结果,我希望有以下内容:
results = [{a:"a"},{b:"b"},{c:"c"},{d:"d"}];
如果我每次都这样做:
results.splice(0,0,array[i]);
然后,results
数组成为两个数组的集合,而不是四个对象的集合
我试过.concat
,但没有成功
有没有一种方法可以在不使用for()
和push()
组合的情况下,将包含一个对象数组的对象与另一个对象数组合并
我一定错过了一些简单的事情
谢谢事实上,康卡特是正确的选择 在您的示例中,定义myarray两次。希望代码中不是这样。当我尝试
var myArray1 = [{a:"a"},{b:"b"}];
var myArray2 = [{c:"c"},{d:"d"}];
var result = myarray1.concat(myarray2);
这一定行得通。如果没有,请在您的浏览器中显示这三行的结果实际上concat是正确的方法 在您的示例中,定义myarray两次。希望代码中不是这样。当我尝试
var myArray1 = [{a:"a"},{b:"b"}];
var myArray2 = [{c:"c"},{d:"d"}];
var result = myarray1.concat(myarray2);
这一定行得通。如果没有,请在您的浏览器中显示这三行的结果,Moataz有您的答案,但您提到了一个循环,因此您可能正在寻找:
var result = [];
var myArray;
for (...) {
myArray = /* getMyArray()? */
result = result.concat(myArray);
}
其中,
myArray
每次设置为新值。您可以通过在concat
表达式中将数组分配给myArray
的逻辑删除一行。Moataz有您的答案,但您提到了一个循环,因此您可能在寻找:
var result = [];
var myArray;
for (...) {
myArray = /* getMyArray()? */
result = result.concat(myArray);
}
其中,
myArray
每次设置为新值。您可以通过在concat
表达式中将数组分配给myArray
的逻辑来删除一行。@Dennis--这看起来效率很低,因为我只需要将两个集合合并。否?无论你做什么,最终都会成为一个“赞成/推动”的核心。您也不清楚“concat不起作用”的含义,显然,concat不起作用,因为我试图将myArray
的第一次迭代与空数组合并。我不知道这是不可能的。在添加了一些简单的逻辑以仅调用concat
如果结果
数组中有项,否则设置结果
=myArray
,一切正常。谢谢。@Dennis——这看起来效率很低,因为我需要做的就是合并这两个集合。否?无论你做什么,最终都会成为一个“赞成/推动”的核心。您也不清楚“concat不起作用”的含义,显然,concat不起作用,因为我试图将myArray
的第一次迭代与空数组合并。我不知道这是不可能的。在添加了一些简单的逻辑以仅调用concat
如果结果
数组中有项,否则设置结果
=myArray
,一切正常。谢谢