Take an array of objects such as:
const cars = [
{
make: 'Mercedes',
model: 'E400',
colour: 'red',
},
{
make: 'BMW',
model: '330i',
colour: 'black',
},
{
make: 'Porsche',
model: '911',
colour: 'black',
},
{
make: 'Volkswagen',
model: 'Golf',
colour: 'silver',
},
{
make: 'Audi',
model: 'S3',
colour: 'silver',
},
]
We want to grab all of the unique colours and put them into an array (and sort them for good measure).
To do that, we can do:
const colours = cars
.filter((e, i) => cars.findIndex(o => o.colour == e.colour) === i)
.map(r => r.colour)
.sort()
This will give us:
['black', 'red', 'silver']