Delete object duplicate in array
function removeDuplicates(originalArray, prop) {
var newArray = [];
var lookupObject = {};
for(var i in originalArray) {
lookupObject[originalArray[i][prop]] = originalArray[i];
}
for(i in lookupObject) {
newArray.push(lookupObject[i]);
}
return newArray;
}
var myArray = [
{id: 1, name: 'Foo Bar', email: 'foo@bar.com'},
{id: 2, name: 'Bar Foo', email: 'bar@foo.com'},
{id: 3, name: 'Joe Ocean', email: 'joe@ocean.com'},
{id: 3, name: 'Jenny Block', email: 'foo@bar.com'},
];
function checkDuplicateInObject(propertyName, inputArray) {
var seenDuplicate = false,
testObject = {};
inputArray.map(function(item) {
var itemPropertyName = item[propertyName];
if (itemPropertyName in testObject) {
testObject[itemPropertyName].duplicate = true;
item.duplicate = true;
seenDuplicate = true;
}
else {
testObject[itemPropertyName] = item;
delete item.duplicate;
}
});
return seenDuplicate;
}
console.log('Duplicate IDs: ' + checkDuplicateInObject('id', myArray));
console.log('Duplicate names: ' + checkDuplicateInObject('name', myArray));
console.log('Duplicate emails: ' + checkDuplicateInObject('email', myArray));