forked from lix-project/lix-website
2.2 KiB
2.2 KiB
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}
Related
- 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.
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.