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