Merge pull request #646 from yazeedb/add-renameKeys
[FEATURE] renameKeys
This commit is contained in:
19
snippets/renameKeys.md
Normal file
19
snippets/renameKeys.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
### renameKeys
|
||||||
|
|
||||||
|
Replaces the names of multiple object keys with the values provided.
|
||||||
|
|
||||||
|
Use `Object.keys()` in combination with `Array.reduce()` and the spread operator (`...`) to get the object's keys and rename them according to `keysMap`.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const renameKeys = (keysMap, obj) => Object
|
||||||
|
.keys(obj)
|
||||||
|
.reduce((acc, key) => ({
|
||||||
|
...acc,
|
||||||
|
...{ [keysMap[key] || key]: obj[key] }
|
||||||
|
}), {});
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
const obj = { name: 'Bobo', job: 'Front-End Master', shoeSize: 100 };
|
||||||
|
renameKeys({ name: 'firstName', job: 'passion' }, obj); // { firstName: 'Bobo', passion: 'Front-End Master', shoeSize: 100 }
|
||||||
|
```
|
||||||
@ -217,6 +217,7 @@ reduceSuccessive:array,function
|
|||||||
reduceWhich:array,function
|
reduceWhich:array,function
|
||||||
remove:array
|
remove:array
|
||||||
removeNonASCII:string,regexp
|
removeNonASCII:string,regexp
|
||||||
|
renameKeys:object
|
||||||
reverseString:string,array
|
reverseString:string,array
|
||||||
RGBToHex:utility
|
RGBToHex:utility
|
||||||
round:math
|
round:math
|
||||||
|
|||||||
7
test/renameKeys/renameKeys.js
Normal file
7
test/renameKeys/renameKeys.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
const renameKeys = (keysMap, obj) => Object
|
||||||
|
.keys(obj)
|
||||||
|
.reduce((acc, key) => ({
|
||||||
|
...acc,
|
||||||
|
...{ [keysMap[key] || key]: obj[key] }
|
||||||
|
}), {});
|
||||||
|
module.exports = renameKeys;
|
||||||
15
test/renameKeys/renameKeys.test.js
Normal file
15
test/renameKeys/renameKeys.test.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
const test = require('tape');
|
||||||
|
const renameKeys = require('./renameKeys.js');
|
||||||
|
|
||||||
|
test('Testing renameKeys', (t) => {
|
||||||
|
//For more information on all the methods supported by tape
|
||||||
|
//Please go to https://github.com/substack/tape
|
||||||
|
t.true(typeof renameKeys === 'function', 'renameKeys is a Function');
|
||||||
|
|
||||||
|
const obj = { name: 'Bobo', job: 'Front-End Master', shoeSize: 100 };
|
||||||
|
const renamedObj = renameKeys({ name: 'firstName', job: 'passion' }, obj);
|
||||||
|
|
||||||
|
t.deepEqual(renamedObj, { firstName: 'Bobo', passion: 'Front-End Master', shoeSize: 100 });
|
||||||
|
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user