Skip to content

Instantly share code, notes, and snippets.

@jvinhit
Created March 3, 2021 03:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jvinhit/33fb6d35cb8f7e600fea1442d3bab0cc to your computer and use it in GitHub Desktop.
Save jvinhit/33fb6d35cb8f7e600fea1442d3bab0cc to your computer and use it in GitHub Desktop.
get/ set nested object property via key (nested or no) funciton implement get/set of lodash
/* Implementation of lodash.get function */
function getProp( object, keys, defaultVal ){
keys = Array.isArray( keys )? keys : keys.split('.');
object = object[keys[0]];
if( object && keys.length>1 ){
return getProp( object, keys.slice(1) );
}
return object === undefined? defaultVal : object;
}
/* Implementation of lodash.set function */
function setProp( object, keys, val ){
keys = Array.isArray( keys )? keys : keys.split('.');
if( keys.length>1 ){
object[keys[0]] = object[keys[0]] || {};
return setProp( object[keys[0]], keys.slice(1), val );
}
object[keys[0]] = val;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment