123456789101112131415161718192021 |
- define(['./isNumber', './isArray', './isObject'], function (isNumber, isArray, isObject) {
- function set (obj, path, value) {
- var key = String(path[0]);
- if (path.length === 1) {
- obj[key] = value;
- return;
- }
- if (!isArray(obj[key]) || !isObject(obj[key])) {
- var nextKey = path[1];
- obj[key] = isNumber(nextKey) ? [] : {};
- }
- return set(obj[key], path.slice(1), value);
- }
- return set;
- });
|