0

在一个循环中,我试图合并两个数组的内容:

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()有没有办法在不使用and的组合的情况下将包含一个对象数组的对象与另一个对象数组合并push()

一定有一些简单的东西我错过了。

谢谢

4

2 回答 2

4

实际上 concat 是在您定义 myarray 两次的示例中的正确方法。希望您的代码中不是这种情况。当我尝试

var myArray1 = [{a:"a"},{b:"b"}];
var myArray2 = [{c:"c"},{d:"d"}];
var result = myarray1.concat(myarray2);

这必须有效。如果没有,请在您的浏览器中向我们展示这三行的结果

于 2012-09-18T23:42:52.260 回答
0

Moataz 有你的答案,但你提到了一个循环,所以你可能正在寻找:

var result = [];
var myArray;

for (...) {
  myArray = /* getMyArray()? */
  result = result.concat(myArray);
}

wheremyArray每次都设置为新值。myArray您可以通过在concat表达式中分配数组的逻辑来删除一行。

于 2012-09-18T23:54:24.857 回答