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
var isNumber = require('./isNumber.js');
var isArray = require('./isArray.js');
var isObject = require('./isObject.js');
 
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);
}
 
module.exports = set;