Files
30-seconds-of-code/snippets/formToObject.md
30secondsofcode 27b26630ab Travis build: 1100
2019-04-08 05:41:51 +00:00

22 lines
518 B
Markdown

### formToObject
Encode a set of form elements as an `object`.
Use the `FormData` constructor to convert the HTML `form` to `FormData`, `Array.from()` to convert to an array.
Collect the object from the 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' }
```