Add symbolizeKeys

This commit is contained in:
Chalarangelo
2021-06-18 21:51:48 +03:00
parent ca1c8375ee
commit 1bef45a024

23
snippets/symbolizeKeys.md Normal file
View File

@ -0,0 +1,23 @@
---
title: symbolizeKeys
tags: object,advanced
firstSeen: 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' }
```