Object.fromEntries()
in depth
it is a static function defined on Object
the key-value pairs might be given as
a simple array, with (at least) two values
a simple array, with multiple key-value pairs
a simple array, with duplicate keys override their predecessor
an object, with properties 0
and 1
an object, without a property 0
results in an object using undefined
as key
many objects, with the same property 0
override each other`s values
a Map
, which maps naturally to object key+value
an empty Map
, results in an empty object
a Set
, used with set.entires()
, returns an object with key=value
the 1st parameter
must be iterable
like an array
a self-made iterable
each entry must have a property 0
and 1
for key+value
like an object with these explicit properties
if any (or both) are missing, undefined
is used
if an empty array is given, both are undefined too
toString-ables can be keys
iterables (like a Map
) are NOT expected, and not used
throws a TypeError
if missing
if undefined
(which is not an iterable)
if null
(which is not an iterable)
if boolean (which is not an iterable)
if a Symbol (which is not an iterable)
more use cases/learnings, are
can be used to map data
an empty string, returns an empty object
a single-space string, throws
not symetric to Object.entries()
allows Symbols as keys, while Object.entries()
does not report them
Links
Description of Object.fromEntries() on MDN.
The specification describing `Object.fromEntries()`.
The (now archived) proposal, before it went into the spec, interesting read if you wanna go deep.
Very interesting details about some decisions on this method.
Required Knowledge
- basics (Arrow functions)
- `const` declaration (Block scope)
- basics (Symbol)
- basics (Map)
- basics (Set)
- `Object.fromEntries()` (Object API)
Related Katas
Global Object API
Object API
Object()
(as introduced in ES1)Object.is()
Object.fromEntries()
Object.fromEntries()
in depthObject.groupBy()
Object literal
Difficulty Level
EXPERT
First Published
25 June 2019
Stats
26 tests to solve