Nest all content into snippets
This commit is contained in:
34
snippets/js/s/objectify.md
Normal file
34
snippets/js/s/objectify.md
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
title: Map an array to an object
|
||||
type: snippet
|
||||
language: javascript
|
||||
tags: [array,object]
|
||||
author: chalarangelo
|
||||
cover: metro-tunnel
|
||||
dateModified: 2023-02-04T05:00:00-04:00
|
||||
---
|
||||
|
||||
Maps an object array to an object, using the provided mapping functions.
|
||||
|
||||
- Use `Array.prototype.reduce()` to map the array to an object.
|
||||
- Use `mapKey` to map the keys of the object and `mapValue` to map the values.
|
||||
|
||||
```js
|
||||
const objectify = (arr, mapKey, mapValue = i => i) =>
|
||||
arr.reduce((acc, item) => {
|
||||
acc[mapKey(item)] = mapValue(item);
|
||||
return acc;
|
||||
}, {});
|
||||
```
|
||||
|
||||
```js
|
||||
const people = [ { name: 'John', age: 42 }, { name: 'Adam', age: 39 } ];
|
||||
objectify(people, p => p.name.toLowerCase());
|
||||
// { john: { name: 'John', age: 42 }, adam: { name: 'Adam', age: 39 } }
|
||||
objectify(
|
||||
people,
|
||||
p => p.name.toLowerCase(),
|
||||
p => p.age
|
||||
);
|
||||
// { john: 42, adam: 39 }
|
||||
```
|
||||
Reference in New Issue
Block a user