index.js 378 B

1234567891011
  1. function dset(obj, keys, val) {
  2. keys.split && (keys=keys.split('.'));
  3. var i=0, l=keys.length, t=obj, x, k;
  4. while (i < l) {
  5. k = ''+keys[i++];
  6. if (k === '__proto__' || k === 'constructor' || k === 'prototype') break;
  7. t = t[k] = (i === l) ? val : (typeof(x=t[k])===typeof(keys)) ? x : (keys[i]*0 !== 0 || !!~(''+keys[i]).indexOf('.')) ? {} : [];
  8. }
  9. }
  10. exports.dset = dset;