typescript - Angular filtrera unik lista av objekt


jag vill filtrera en unik array av objekt. min ursprungliga array skulle vara

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

min resultatarray skulle vara

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

Svar #1

Prova så här:

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)
  }
})

Arbetsdemo

Svar #2

Du kan använda filter() och findIndex() för att filtrera dubblettobjekt.

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);

Relaterade artiklar