What is object.fromentries?
The object.fromentries npm package is a polyfill for the Object.fromEntries() method, which transforms a list of key-value pairs into an object. This is particularly useful for converting Map objects or arrays of arrays into object literals, allowing for easy manipulation and access of data structures.
What are object.fromentries's main functionalities?
Converting Map to Object
This feature allows for the conversion of Map objects to plain objects, making it easier to work with and access data stored in Maps.
const map = new Map([['foo', 'bar'], ['baz', 42]]);
const obj = Object.fromEntries(map);
console.log(obj); // Output: { foo: 'bar', baz: 42 }
Converting Array of Arrays to Object
This feature enables the transformation of an array of arrays (each inner array representing a key-value pair) into an object, simplifying the process of creating objects from structured data arrays.
const entries = [['foo', 'bar'], ['baz', 42]];
const obj = Object.fromEntries(entries);
console.log(obj); // Output: { foo: 'bar', baz: 42 }
Other packages similar to object.fromentries
lodash.frompairs
Lodash's _.fromPairs() method offers similar functionality to Object.fromEntries by converting an array of key-value pairs into an object. While lodash.frompairs provides this as part of a larger utility library, object.fromentries focuses solely on this conversion feature.
ramda
Ramda's R.fromPairs function also converts an array of key-value pairs into an object. Compared to object.fromentries, Ramda offers this functionality within a functional programming context, providing a broader set of tools for data transformation and manipulation.
object.fromentries
An ES spec-proposal-compliant Object.fromEntries
shim. Invoke its "shim" method to shim Object.fromEntries
if it is unavailable or noncompliant.
This package implements the es-shim API interface. It works in an ES3-supported environment and complies with the proposed spec.
Most common usage:
var assert = require('assert');
var fromEntries = require('object.fromentries');
var obj = { a: 1, b: 2, c: 3 };
var actual = fromEntries(Object.entries(obj));
assert.deepEqual(obj, actual);
if (!Object.fromEntries) {
fromEntries.shim();
}
assert.deepEqual(Object.fromEntries(Object.entries(obj)), obj);
Tests
Simply clone the repo, npm install
, and run npm test