Angular filter unique array of object

Viewed 931

i want to filter unique array of objects. my initial array would be

var initialObjArray=[ {lat:10,lon:20},{lat :10,lon:30} ,{lat :10,lon:20}];

my result array would be

var initialObjArray=[ {lat:10,lon:20},{lat :10,lon:30}];
2 Answers

Try like this:

var result =  []
initialObjArray.forEach(item => {
  let count = result.filter(x => x.lat == item.lat && x.lon == item.lon).length

  if(count == 0) {
    result.push(item)
  }
})

Working Demo

You can use filter() and findIndex() to filter duplicate objects.

var initialObjArray = [{ lat:10, lon:20 }, { lat :10, lon:30 }, { lat :10, lon:20 }];

var unique = initialObjArray.filter((value, index, arr) => {
  return index === arr.findIndex(obj => obj.lat === value.lat && obj.lon === value.lon);
});

console.log(unique);

Related