0

ループで、2つの配列の内容をマージしようとしています。

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配列は4つのオブジェクトのコレクションではなく、2つの配列のコレクションになります。

試し.concatましたが、うまくいきませんでした。

との組み合わせを使用せずに、オブジェクト配列を構成するオブジェクトを別のオブジェクト配列とマージする方法はありfor()ますpush()か?

私が見逃した単純な何かがあるに違いありません。

ありがとう

4

2 に答える 2

4

実際には、concatは、myarrayを2回定義している例に進む正しい方法です。うまくいけば、これはあなたのコードには当てはまりません。やってみると

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

これは機能する必要があります。そうでない場合は、ブラウザにこれらの3行の結果を表示してください

于 2012-09-18T23:42:52.260 に答える
0

Moatazがあなたの答えを持っていますが、あなたはループについて言及しているので、あなたは探しているかもしれません:

var result = [];
var myArray;

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

ここで、myArrayは毎回新しい値に設定されます。myArray式で配列を割り当てるロジックを使用することで、1行を削除できconcatます。

于 2012-09-18T23:54:24.857 に答える