UNPKG

1.09 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6var is_string_1 = __importDefault(require("./is-string"));
7var is_object_1 = __importDefault(require("./is-object"));
8var is_number_1 = __importDefault(require("./is-number"));
9/**
10 * set object value by path
11 * @example
12 * set({ a: 1, b: { c: 2 }}, 'b.c', 3);
13 * @param {object} obj
14 * @param {string | array} path
15 * @param {any} value
16 * @returns
17 */
18function set(obj, path, value) {
19 var _obj = obj;
20 var keyArr = is_string_1.default(path) ? path.split('.') : path;
21 keyArr.forEach(function (key, idx) {
22 if (idx < (keyArr.length - 1)) {
23 if (!is_object_1.default(_obj[key])) {
24 _obj[key] = is_number_1.default(keyArr[idx + 1]) ? [] : {};
25 }
26 _obj = _obj[key];
27 }
28 else {
29 _obj[key] = value;
30 }
31 });
32 return obj;
33}
34exports.default = set;
35//# sourceMappingURL=set.js.map
\No newline at end of file