map-obj
Map object keys and values into a new object
Install
npm install map-obj
Usage
import mapObject, {mapObjectSkip} from '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] : mapObjectSkip);
//=> {one: 1}
API
mapObject(source, mapper, options?)
source
Type: object
The source object to copy properties from.
mapper
Type: (sourceKey, sourceValue, source) => [targetKey, targetValue, mapperOptions?] | mapObjectSkip
A 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: {}
The target object to map properties on to.
mapObjectSkip
Return this value from a mapper
function to exclude the key from the new object.
import mapObject, {mapObjectSkip} from 'map-obj';
const object = {one: 1, two: 2}
const mapper = (key, value) => value === 1 ? [key, value] : 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.