set.js 708 B

123456789101112131415161718192021222324252627
  1. import isObject from './is-object';
  2. import isString from './is-string';
  3. import isNumber from './is-number';
  4. /**
  5. * https://github.com/developit/dlv/blob/master/index.js
  6. * @param obj
  7. * @param path
  8. * @param value
  9. */
  10. export default (function (obj, path, value) {
  11. var o = obj;
  12. var keyArr = isString(path) ? path.split('.') : path;
  13. keyArr.forEach(function (key, idx) {
  14. // 不是最后一个
  15. if (idx < keyArr.length - 1) {
  16. if (!isObject(o[key])) {
  17. o[key] = isNumber(keyArr[idx + 1]) ? [] : {};
  18. }
  19. o = o[key];
  20. }
  21. else {
  22. o[key] = value;
  23. }
  24. });
  25. return obj;
  26. });
  27. //# sourceMappingURL=set.js.map