Skip to content

Instantly share code, notes, and snippets.

@gkucmierz
Created February 5, 2017 02:42
Show Gist options
  • Select an option

  • Save gkucmierz/c6a2f08d163d35a94a8068b48aeae0ce to your computer and use it in GitHub Desktop.

Select an option

Save gkucmierz/c6a2f08d163d35a94a8068b48aeae0ce to your computer and use it in GitHub Desktop.
pick or put value to object property defined by chain
var pick = function(obj, chain) {
var src = chain.split('.');
var res = obj;
for (var i = 0, l = src.length; i < l; ++i) {
if (!(src[i] in res)) {
return void(0);
}
res = res[src[i]];
}
return res;
};
var put = function(obj, chain, value) {
var src = chain.split('.');
var res = obj;
for (var i = 0, l = src.length; i < l; ++i) {
if (!(src[i] in res)) {
res[src[i]] = {};
}
if (i + 1 === l) {
res[src[i]] = value;
} else {
res = res[src[i]];
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment