I have these 2 arrays
var array1 =
[ { name: 'placeone', leagueID: '8368223' },
{ name: 'placetwo', leagueID: '6164631' },
{ name: 'placethree', leagueID: '4564836' },
{ name: 'placefour', leagueID: '9722578' },
{ name: 'placefive', leagueID: '9722578' }];
var array2 =
[{name: 'placeone', leagueID: '8368223' },
{name: 'placetwo', leagueID: '6164631' },
{name: 'placethree', leagueID: '4564836' },
{name: 'placefour', leagueID: '9722578' },
{name: 'placesix', leagueID: '9722578' }];
I would like to remove all duplicated results, both of them leaving only:
[{ name: 'placefive', leagueID: '9722578' },
{ _id: 55b7f4825d3255b043e3dfe8, name: 'placesix', leagueID: '9722578', __v: 0 }]
I have the following function, but I don't need to reuse any of this if you I am barking up the wrong tree :)
var unquie = function (array1, array2, name) {
var myArr = array1.concat(array2);
var newArr = myArr;
for(var h = 0; h < myArr.length; h++) {
var curItem = myArr[h][name];
var foundCount = 0;
// search array for item
for(var i = 0; i < myArr.length; i++) {
if (myArr[i][name] === myArr[h][name])
foundCount++;
}
if(foundCount > 1) {
// remove repeated item from new array
for(var j = 0; j < newArr.length; j++) {
if(newArr[j][name] === curItem) {
newArr.splice(j, 1);
j = j - 1;
}
}
}
}
return newArr;
};
unquie(array1, array2, 'name');
//Random incorrect results :(
var array1 =
[ { name: 'placeone', leagueID: '8368223' },
{ name: 'placetwo', leagueID: '6164631' },
{ name: 'placethree', leagueID: '4564836' },
{ name: 'placefour', leagueID: '9722578' },
{ name: 'placefive', leagueID: '9722578' }];
var array2 =
[{name: 'placeone', leagueID: '8368223' },
{name: 'placetwo', leagueID: '6164631' },
{name: 'placethree', leagueID: '4564836' },
{name: 'placefour', leagueID: '9722578' },
{name: 'placesix', leagueID: '9722578' }]
console.info('Original Arrays');
console.info(array1);
console.info(array2);
var unquie = function (array1, array2, name) {
var myArr = array1.concat(array2);
var newArr = myArr;
for(var h = 0; h < myArr.length; h++) {
var curItem = myArr[h][name];
var foundCount = 0;
for(var i = 0; i < myArr.length; i++) {
if (myArr[i][name] === myArr[h][name])
foundCount++;
}
if(foundCount > 1) {
// remove repeated item from new array
for(var j = 0; j < newArr.length; j++) {
if(newArr[j][name] === curItem) {
newArr.splice(j, 1);
j = j - 1;
}
}
}
}
return newArr;
};
console.info('Converted Arrays');
console.info(unquie(array1, array2, 'name'));
//