Convert a 2D array into a flat, 1D array of unique items

Convert a messy multidimensional array into a nice single dimension array of unique items.


If you have an array that’s multidimensional, and that contains duplicated data: you can get a flat, unique version, using modern, ES2019 JavaScript capabilities.

Code language
js
const allAnimals = [
	["Cat", "Dog", "Quokka", "Possum"], 
	["Quokka"], 
	["Quokka", "Elephant", "Giraffe"], 
	"Cat", "Possum"
];

const filteredAnimals = [...new Set(allAnimals.flat())];

The flat() prototype method grabs each nested array and returns back a single-level, flat array, containing all the data.

What we then do is use a new Set instantiation to discard any duplicates. Lastly, we use the spread syntax to convert that back into an array.