liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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;
 
});