Files
30-seconds-of-code/javascript/snippets/symbolize-keys.md
2023-05-01 22:35:56 +03:00

27 lines
602 B
Markdown

---
title: Symbolize object keys
type: snippet
tags: [object]
author: chalarangelo
cover: rocky-lake
dateModified: 2021-08-01T05:00:00-04:00
---
Creates a new object, converting each key to a `Symbol`.
- Use `Object.keys()` to get the keys of `obj`.
- Use `Array.prototype.reduce()` and `Symbol` to create a new object where each key is converted to a `Symbol`.
```js
const symbolizeKeys = obj =>
Object.keys(obj).reduce(
(acc, key) => ({ ...acc, [Symbol(key)]: obj[key] }),
{}
);
```
```js
symbolizeKeys({ id: 10, name: 'apple' });
// { [Symbol(id)]: 10, [Symbol(name)]: 'apple' }
```