Convert a Set to an Array in JavaScript

Jan 25, 2023

Converting a Set to an Array is convenient for using array methods that aren't on sets, like filter() or reduce(). The most concise way to convert a Set to an array is using the spread operator as follows.

const set = new Set(['a', 'b', 'c']);

[...set]; // ['a', 'b', 'c']

[...set].map(c => c.toUpperCase()); // ['A', 'B', 'C']

You Usually Don't Need to Convert a Set to an Array

You may convert sets to arrays for helpers like filter() and map(). But keep in mind that for/of, which we recommend for iterating over an array, also works with sets.

const set = new Set(['a', 'b', 'c']);

for (const char of set) {
  console.log(char); // Prints "a", "b", "c"
}

Alternative: Use Array.from()

The spread operator has pretty good browser compability. However, if you need to support older browsers, you may consider using the Array.from() function, which is easier to polyfill.

const set = new Set(['a', 'b', 'c']);

Array.from(set); // ['a', 'b', 'c']

Array.from(set).map(c => c.toUpperCase()); // ['A', 'B', 'C']

Did you find this tutorial useful? Say thanks by starring our repo on GitHub!

More Fundamentals Tutorials