2017-01-26 2 views
2

同じ量のオブジェクトを持つ2つの配列があります。私は各配列の最初のオブジェクトを取得し、配列の最初のオブジェクトとしてそれらを新しい配列にまとめたいと思います。私はそれから、次のオブジェクトでそれを続けていきたいと思います。同じ長さの新しい配列になるオブジェクトを持つ2つの配列ですが、元の配列のすべてのデータ

var a = [{akey: 'something'}, {bkey: 'somethingelse'}]; 
var b = [{ckey: 'somethinghere'}, {dkey: 'somethingdiffrent'}]; 

//some-code-here to make the below part. 

var newArray = [{akey: 'something', ckey: 'somethinghere'}, 
       {bkey: 'somethingelse', dkey: 'somethingdiffrent'}]; 

私はまだ古い配列のオブジェクトからのデータを持っていますが、1つの新しい配列に2つの新しいオブジェクトとしてまとめることができます。重複したキーを除き は、その後、彼らはそうのように、上書きすることができます。

{aKey: 'data'} + {aKey: 'data'} whould just be {aKey: 'data'} 

ホープこれは、配列が同じ長さ、a.length =てb.lengthになりますが、objectsは異なる場合がありますいくつかの意味がありますセンス。最後の配列はng-repeat(角度のあるプロジェクト)に出力されます。

+0

'長!== lenght'、最初は正しいです。 –

+0

あなたの鍵はいつもアルファベットの文字で始まるでしょうか? – Cruiser

答えて

1

Object.assignを使用してオブジェクトを結合し、配列のマッピングにArray#mapを使用できます。

var a = [{akey: 'something'}, {bkey: 'somethingelse'}, { foo: 'from a' }], 
 
    b = [{ckey: 'somethinghere'}, {dkey: 'somethingdiffrent'}, { foo: 'from b' }], 
 
    c = a.map(function (el, i) { 
 
     return Object.assign({}, el, b[i]); 
 
    }); 
 

 
console.log(c);
.as-console-wrapper { max-height: 100% !important; top: 0; }

あなたが{ foo: 'from a' }を取得したい場合は、elb[i]を切り替えることができます。

return Object.assign({}, b[i], el); 

var a = [{akey: 'something'}, {bkey: 'somethingelse'}, { foo: 'from a' }], 
 
    b = [{ckey: 'somethinghere'}, {dkey: 'somethingdiffrent'}, { foo: 'from b' }], 
 
    c = a.map(function (el, i) { 
 
     return Object.assign({}, b[i], el); 
 
    }); 
 

 
console.log(c);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

これは私の問題を解決しました! –

+1

はい私は申し訳ありませんが、私は残念ながら間違ったボタンをmissclickedと今私はそれをやり直す場所を見つけることができないようです。私はあなたに投票しましたが、私は15ポイント以下しか持っていないので、まだそれを表示することはできません。そして、なぜあなたの答えにコメントしたのでしょうか? –

関連する問題