You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					22 lines
				
				450 B
			
		
		
			
		
	
	
					22 lines
				
				450 B
			| 
											3 years ago
										 | 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; |