Files
30-seconds-of-code/snippets/js/s/listify.md
2023-05-07 16:07:29 +03:00

30 lines
858 B
Markdown

---
title: Map an object to an array
type: snippet
language: javascript
tags: [object,array]
author: chalarangelo
cover: metro-arrival
dateModified: 2023-02-05T05:00:00-04:00
---
Maps an object to an object array, using the provided mapping function.
- Use `Object.entries()` to get an array of the object's key-value pairs.
- Use `Array.prototype.reduce()` to map the array to an object.
- Use `mapFn` to map the keys and values of the object and `Array.prototype.push()` to add the mapped values to the array.
```js
const listify = (obj, mapFn) =>
Object.entries(obj).reduce((acc, [key, value]) => {
acc.push(mapFn(key, value));
return acc;
}, []);
```
```js
const people = { John: { age: 42 }, Adam: { age: 39 } };
listify(people, (key, value) => ({ name: key, ...value }));
// [ { name: 'John', age: 42 }, { name: 'Adam', age: 39 } ]
```