mirror of
				https://github.com/taixingyiji/openit.git
				synced 2025-11-04 10:02:26 +00:00 
			
		
		
		
	2022.07.20 16:18:09 更新订阅
This commit is contained in:
		
							
								
								
									
										51
									
								
								utils/rm/node_modules/lodash/_baseSet.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								utils/rm/node_modules/lodash/_baseSet.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
var assignValue = require('./_assignValue'),
 | 
			
		||||
    castPath = require('./_castPath'),
 | 
			
		||||
    isIndex = require('./_isIndex'),
 | 
			
		||||
    isObject = require('./isObject'),
 | 
			
		||||
    toKey = require('./_toKey');
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The base implementation of `_.set`.
 | 
			
		||||
 *
 | 
			
		||||
 * @private
 | 
			
		||||
 * @param {Object} object The object to modify.
 | 
			
		||||
 * @param {Array|string} path The path of the property to set.
 | 
			
		||||
 * @param {*} value The value to set.
 | 
			
		||||
 * @param {Function} [customizer] The function to customize path creation.
 | 
			
		||||
 * @returns {Object} Returns `object`.
 | 
			
		||||
 */
 | 
			
		||||
function baseSet(object, path, value, customizer) {
 | 
			
		||||
  if (!isObject(object)) {
 | 
			
		||||
    return object;
 | 
			
		||||
  }
 | 
			
		||||
  path = castPath(path, object);
 | 
			
		||||
 | 
			
		||||
  var index = -1,
 | 
			
		||||
      length = path.length,
 | 
			
		||||
      lastIndex = length - 1,
 | 
			
		||||
      nested = object;
 | 
			
		||||
 | 
			
		||||
  while (nested != null && ++index < length) {
 | 
			
		||||
    var key = toKey(path[index]),
 | 
			
		||||
        newValue = value;
 | 
			
		||||
 | 
			
		||||
    if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
 | 
			
		||||
      return object;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (index != lastIndex) {
 | 
			
		||||
      var objValue = nested[key];
 | 
			
		||||
      newValue = customizer ? customizer(objValue, key, nested) : undefined;
 | 
			
		||||
      if (newValue === undefined) {
 | 
			
		||||
        newValue = isObject(objValue)
 | 
			
		||||
          ? objValue
 | 
			
		||||
          : (isIndex(path[index + 1]) ? [] : {});
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    assignValue(nested, key, newValue);
 | 
			
		||||
    nested = nested[key];
 | 
			
		||||
  }
 | 
			
		||||
  return object;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = baseSet;
 | 
			
		||||
		Reference in New Issue
	
	Block a user