24 lines
873 B
Markdown
24 lines
873 B
Markdown
---
|
|
title: toPairs
|
|
tags: object,array,intermediate
|
|
---
|
|
|
|
Creates an array of key-value pair arrays from an object or other iterable (object, array, string, set etc.).
|
|
|
|
- Check if `Symbol.iterator` is defined and, if so, use `Array.prototype.entries()` to get an iterator for the given iterable, `Array.from()` to convert the result to an array of key-value pair arrays.
|
|
- If `Symbol.iterator` is not defined for `obj`, use `Object.entries()` instead.
|
|
|
|
```js
|
|
const toPairs = obj =>
|
|
obj[Symbol.iterator] instanceof Function && obj.entries instanceof Function
|
|
? Array.from(obj.entries())
|
|
: Object.entries(obj);
|
|
```
|
|
|
|
```js
|
|
toPairs({ a: 1, b: 2 }); // [ ['a', 1], ['b', 2] ]
|
|
toPairs([2, 4, 8]); // [ [0, 2], [1, 4], [2, 8] ]
|
|
toPairs('shy'); // [ ['0', 's'], ['1', 'h'], ['2', 'y'] ]
|
|
toPairs(new Set(['a', 'b', 'c', 'a'])); // [ ['a', 'a'], ['b', 'b'], ['c', 'c'] ]
|
|
```
|