code: function write(target, path, value, strategy) {
  		var id = 0;
  		var notation = path;
  		var nextNotation;
  		var scope = target;
  		var keys = parse(notation);
  		var total = keys.length - 1;
  		while (id < total) {
  			notation = keys[id++];
  			nextNotation = keys[id];
  			if (number(nextNotation)) {
  				var size = parseInt(nextNotation, 10);
  				target[notation] = size ? new Array(size - 1) : [];
  			} else if (primitive(target[notation])) {
  				target[notation] = {};
  			}
  			target = target[notation];
  		}
  		notation = keys[id];
  		if (undef(value)) {
  			delete target[notation];
  		} else {
  			target[notation] = strategy(value, target[notation], notation, keys);
  		}
  		return scope;
  	}
docs: /* eslint-disable no-plusplus