Last active
November 9, 2017 18:20
-
-
Save iuliaL/9a4c5ebff473bddf6905c9c7ed505fbc to your computer and use it in GitHub Desktop.
Delete (nested) keys passed as any number of arguments from JSON object using recursion
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
import _ from 'lodash'; | |
// works with | |
// just key name (i.e 'password', 'tenantName') | |
const recursiveCleaner = (object, keys) =>{ | |
return Object.keys(object).reduce((objectSoFar, key) => { | |
if (object[key] && typeof object[key] === 'object') { | |
objectSoFar[key] = recursiveCleaner(object[key], keys); | |
return objectSoFar; | |
} else if (keys.indexOf(key) > -1){ //if is in keys to delete array don't add it | |
return objectSoFar; | |
} else { | |
objectSoFar[key] = object[key]; | |
return objectSoFar; | |
} | |
}, {}); | |
}; | |
const deleteKeysFromObject = (obj: Object, ...keysToDelete: Array<string>) =>{ | |
return recursiveCleaner(_.clone(obj, true), keysToDelete); | |
}; | |
console.log(deleteKeysFromObject(jsonObj, 'apiBaseUrl', 'password', 'username')); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment