2017-07-17 10 views
-2

にユニークな配列を返す方法:配列のオブジェクトを比較して、私は2つの配列を持っているのJavaScript

最初の配列:

generalInfo = [{"fName": "Suku", "lName": "Brown", "sex": "Male", "Id": "RY12S"}, {"fName": "Mary", "lName": "Sue", "sex": "Female", "Id": "UT72W"}] 

二番目の配列:今

paymentInfo = [{"Id": "RY12S", "amount": "1000.00", "purpose": "rent", "date": "2017-17-07"}, {"Id": "UT72W", "amount": "5000.00", "purpose": "renovation", "date": "2017-15-07"}] 

、私はなりたいです両方の配列のIdフィールドを比較して固有の情報を返すことができます。

少なくとも第三は、次のようになります。

specificInfo = [{"Id": "RY12S","fName": "Suku", "lName": "Brown", "amount": "1000.00", "purpose": "rent"}, {"Id": "UT72W","fName": "Mary", "lName": "Sue", "amount": "5000.00", "purpose": "renovation"}] 

は、これを達成する簡単な方法はありますか?

+3

何を試しましたか?少なくとも試してみることが期待されます。問題がある場合は、喜んでお手伝いします。 –

+1

[Array.push()が存在しない場合は複製できますか?](https://stackoverflow.com/questions/1988349/array-push-if-does-not-exist) –

+0

これは重複した質問です。あなたはあなたの答えを確認することができます:https://stackoverflow.com/questions/1988349/array-push-if-does-not-exist –

答えて

0

mapfindとアンES6ソリューション:

var generalInfo = [{"fName": "Suku", "lName": "Brown", "sex": "Male", "Id": "RY12S"}, {"fName": "Mary", "lName": "Sue", "sex": "Female", "Id": "UT72W"}]; 
 

 
var paymentInfo = [{"Id": "RY12S", "amount": "1000.00", "purpose": "rent", "date": "2017-17-07"}, {"Id": "UT72W", "amount": "5000.00", "purpose": "renovation", "date": "2017-15-07"}]; 
 

 
var uniqueInfo = generalInfo.map((generalItem) => { 
 
    var paymentItem = paymentInfo.find((item) => item.Id === generalItem.Id); 
 

 
    return { 
 
    Id: generalItem.Id, 
 
    fName: generalItem.fName, 
 
    lName: generalItem.lName, 
 
    amount: paymentItem.amount, 
 
    purpose: paymentItem.purpose 
 
    }; 
 
}); 
 

 
console.log(uniqueInfo);

は、この背後にある論理を理解し、あなたがES5で実装する必要がある場合は、ここに投稿する前に自分で実行しようとしてみてください。

関連する問題