Files
30-seconds-of-code/snippets/zipObject.md
2020-09-15 21:52:00 +03:00

18 lines
634 B
Markdown

---
title: zipObject
tags: array,object,intermediate
---
Given an array of valid property identifiers and an array of values, return an object associating the properties to the values.
- Since an object can have undefined values but not undefined property pointers, the array of properties is used to decide the structure of the resulting object using `Array.prototype.reduce()`.
```js
const zipObject = (props, values) =>
props.reduce((obj, prop, index) => ((obj[prop] = values[index]), obj), {});
```
```js
zipObject(['a', 'b', 'c'], [1, 2]); // {a: 1, b: 2, c: undefined}
zipObject(['a', 'b'], [1, 2, 3]); // {a: 1, b: 2}
```