How to get distinct values from an array of objects in JavaScript? How to get distinct values from an array of objects in JavaScript? arrays arrays

How to get distinct values from an array of objects in JavaScript?


If you are using ES6/ES2015 or later you can do it this way:

const data = [  { group: 'A', name: 'SD' },   { group: 'B', name: 'FI' },   { group: 'A', name: 'MM' },  { group: 'B', name: 'CO'}];const unique = [...new Set(data.map(item => item.group))]; // [ 'A', 'B']

Here is an example on how to do it.


using ES6

let array = [  { "name": "Joe", "age": 17 },  { "name": "Bob", "age": 17 },  { "name": "Carl", "age": 35 }];array.map(item => item.age)  .filter((value, index, self) => self.indexOf(value) === index)> [17, 35]


If this were PHP I'd build an array with the keys and take array_keys at the end, but JS has no such luxury. Instead, try this:

var flags = [], output = [], l = array.length, i;for( i=0; i<l; i++) {    if( flags[array[i].age]) continue;    flags[array[i].age] = true;    output.push(array[i].age);}