26 lines
641 B
Markdown
26 lines
641 B
Markdown
---
|
|
title: Map array to object
|
|
tags: array,object
|
|
expertise: intermediate
|
|
cover: blog_images/two-lighthouses.jpg
|
|
firstSeen: 2017-12-18T12:11:58+02:00
|
|
lastUpdated: 2020-10-21T21:54:53+03:00
|
|
---
|
|
|
|
Maps the values of an array to an object using a function.
|
|
|
|
- Use `Array.prototype.reduce()` to apply `fn` to each element in `arr` and combine the results into an object.
|
|
- Use `el` as the key for each property and the result of `fn` as the value.
|
|
|
|
```js
|
|
const mapObject = (arr, fn) =>
|
|
arr.reduce((acc, el, i) => {
|
|
acc[el] = fn(el, i, arr);
|
|
return acc;
|
|
}, {});
|
|
```
|
|
|
|
```js
|
|
mapObject([1, 2, 3], a => a * a); // { 1: 1, 2: 4, 3: 9 }
|
|
```
|