Files
30-seconds-of-code/snippets/js/s/zip-object.md
Angelos Chalaris 4d0316a062 Update covers
2023-05-07 22:25:00 +03:00

25 lines
759 B
Markdown

---
title: Group array into object
type: snippet
language: javascript
tags: [array,object]
cover: snowy-mountains
dateModified: 2020-10-22T20:24:44+03:00
---
Associates properties to values, given array of valid property identifiers and an array of values.
- Use `Array.prototype.reduce()` to build an object from the two arrays.
- If the length of `props` is longer than `values`, remaining keys will be `undefined`.
- If the length of `values` is longer than `props`, remaining values will be ignored.
```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}
```