mo

map-obj

Map object keys and values into a new object

Showing:

Popularity

Downloads/wk

17.9M

GitHub Stars

115

Maintenance

Last Commit

4d ago

Contributors

9

Package

Dependencies

0

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

map-obj

Map object keys and values into a new object

Install

npm install map-obj

Usage

const mapObject = require('map-obj');

const newObject = mapObject({foo: 'bar'}, (key, value) => [value, key]);
//=> {bar: 'foo'}

const newObject = mapObject({FOO: true, bAr: {bAz: true}}, (key, value) => [key.toLowerCase(), value]);
//=> {foo: true, bar: {bAz: true}}

const newObject = mapObject({FOO: true, bAr: {bAz: true}}, (key, value) => [key.toLowerCase(), value], {deep: true});
//=> {foo: true, bar: {baz: true}}

const newObject = mapObject({one: 1, two: 2}, (key, value) => value === 1 ? [key, value] : mapObject.mapObjectSkip);
//=> {one: 1}

API

mapObject(source, mapper, options?)

source

Type: object

Source object to copy properties from.

mapper

Type: (sourceKey, sourceValue, source) => [targetKey, targetValue, mapperOptions?] | mapObject.mapObjectSkip

Mapping function.

mapperOptions

Type: object

shouldRecurse

Type: boolean\ Default: true

Whether targetValue should be recursed.

Requires deep: true.

options

Type: object

deep

Type: boolean\ Default: false

Recurse nested objects and objects in arrays.

target

Type: object\ Default: {}

Target object to map properties on to.

mapObject.mapObjectSkip

Return this value from a mapper function to exclude the key from the new object.

const mapObject = require('map-obj');

const object = {one: 1, two: 2}
const mapper = (key, value) => value === 1 ? [key, value] : mapObject.mapObjectSkip
const result = mapObject(object, mapper);

console.log(result);
//=> {one: 1}
  • filter-obj - Filter object keys and values into a new object

Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial