Files
30-seconds-of-code/snippets/formToObject.md
2019-03-15 13:16:03 +03:00

20 lines
496 B
Markdown

### formToObject
Encode a set of form elements as a `object`.
1. Convert the HTML form to `FormData()`
2. Convert `FormData()` to `Array` using ` Array.from()`
3. We collect an object from an array using `Array.prototype.reduce()`
```js
const formToObject = form =>
Array.from(new FormData(form))
.reduce((acc, [key, value]) => ({
...acc,
[key]: value,
}), {})
```
```js
formToObject(document.querySelector('#form')) // { email: 'test@email.com', name: 'Test Name' }
```