Using `map()` on JavaScript Enums
Sep 28, 2021
JavaScript doesn't support enums natively, but you can use POJOs to simulate vanilla JavaScript enums as shown below.
function createEnum(values) {
const enumObject = {};
for (const val of values) {
enumObject[val] = val;
}
return Object.freeze(enumObject);
}
// { Up: 'Up', Down: 'Down', Left: 'Left', Right: 'Right' }
createEnum(['Up', 'Down', 'Left', 'Right']);
Since a JavaScript enum is just an object, you can iterate over an object using map()
and Object.keys()
as shown below.
// { Up: 'Up', Down: 'Down', Left: 'Left', Right: 'Right' }
const direction = createEnum(['Up', 'Down', 'Left', 'Right']);
// ['UP', 'DOWN', 'LEFT', 'RIGHT']
const uppercaseNames = Object.keys(direction).map(key => key.toUpperCase());
Did you find this tutorial useful? Say thanks by starring our repo on GitHub!