Skip to main content

toPairs

TS JS Deno

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.

typescript
const isArrayLike = (obj: any): obj is Array<any> => {
return (
obj[Symbol.iterator] instanceof Function && obj.entries instanceof Function
);
};
const toPairs = (obj: any) =>
isArrayLike(obj) ? Array.from(obj.entries()) : Object.entries(obj);
typescript
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'] ]

toPairs(undefined); //[]
toPairs(null); //[]
toPairs(true); //[]
toPairs(false); //[]