-2

I currently have a nested geojson array with duplicate values. How can I filter out these values based on the OBJECT ID?

let geojson = [
  {properties: {OBJECTID: 6249646, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}}, 
  {properties: {OBJECTID: 6249646, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}}, 
  {properties: {OBJECTID: 6249647, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}},
  {properties: {OBJECTID: 6249647, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}},
  {properties: {OBJECTID: 6249648, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}},
  {properties: {OBJECTID: 6249649, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}} 
  ]

What I would like to return is a json array with unique values, like this:

[ 
  {properties: {OBJECTID: 6249646, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}}, 
  {properties: {OBJECTID: 6249647, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}},
  {properties: {OBJECTID: 6249648, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}},
  {properties: {OBJECTID: 6249649, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}} 
]

jlsr10
  • 33
  • 5
  • https://stackoverflow.com/questions/23507853/remove-duplicate-objects-from-json-array check this post - you'll get hopefully your answer – Reza P. Mar 02 '20 at 10:30

1 Answers1

0

You can use a simple reduce alongside Object.values():

let geojson = [
  {properties: {OBJECTID: 6249646, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}}, 
  {properties: {OBJECTID: 6249646, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}}, 
  {properties: {OBJECTID: 6249647, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}},
  {properties: {OBJECTID: 6249647, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}},
  {properties: {OBJECTID: 6249648, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}},
  {properties: {OBJECTID: 6249649, FeatureCode: 10185, Version: 3, VersionDate: "1/25/2018"}} 
]

const out = Object.values(geojson.reduce((a, v) => (a[v.properties.OBJECTID] = v, a), {}))
console.log(out)
Kobe
  • 6,226
  • 1
  • 14
  • 35