2017-07-17 44 views
-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()if exists does not exist?)(https://stackoverflow.com/questions/1988349/array-push-if-does-not-exist) –

+0

这是重复的问题。你可以检查这个答案:https://stackoverflow.com/questions/1988349/array-push-if-does-not-exist –

回答

0

的ES6溶液mapfind

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实现,尝试着自己在这里发帖之前做。