var records = [
{
"defaultContact":true,
"contactName":"testContactName",
"mobileNumber":"900000000000",
"mobileDialCode":"+91 IN",
"faxNumber":"123",
"faxDialCode":"+91 IN",
"emailId":"test@gmail.com"
},
{
"defaultContact":false,
"contactName":"xyz",
"mobileNumber":"900000001000",
"mobileDialCode":"+91 IN",
"faxNumber":"123",
"faxDialCode":"+91 IN",
"emailId":"xyz@gmail.coma"
},
{
"defaultContact":false,
"contactName":"asdasd",
"mobileNumber":"123",
"mobileDialCode":"+91 IN",
"faxNumber":"",
"faxDialCode":"",
"emailId":""
},
{
"contactName":"asdasd",
"defaultContact":false,
"emailId":"",
"faxDialCode":"",
"faxNumber":"",
"mobileDialCode":"+91 IN",
"mobileNumber":"123"
}
];
The above is an array of object i have done this using two for loops but this doesn't look good, can anyone suggest how to do it with ES6 Higher order functions.
here duplicate means when each & every property matched exactly same.
below is how i did it:
let duplicateRecords = [];
for (let i = 0; i < records.length; i++) {
for (let j = i + 1; j < records.length; j++) {
if (
records[i].contactName === records[j].contactName &&
records[i].emailId === records[j].emailId &&
records[i].faxDialCode === records[j].faxDialCode &&
records[i].faxNumber === records[j].faxNumber &&
records[i].mobileDialCode === records[j].mobileDialCode &&
records[i].mobileNumber === records[j].mobileNumber
) {
duplicateRecords = [records[j]];
}
}
}
Any help would be appreciated.