Files
30-seconds-of-code/snippets/toPairs.md
Angelos Chalaris 749920ae7f Add toPairs snippet
2020-03-23 15:07:23 +02:00

869 B

title, tags
title tags
toPairs 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.

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