add hw2
This commit is contained in:
		
							
								
								
									
										84
									
								
								node_modules/lodash/_equalArrays.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								node_modules/lodash/_equalArrays.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| var SetCache = require('./_SetCache'), | ||||
|     arraySome = require('./_arraySome'), | ||||
|     cacheHas = require('./_cacheHas'); | ||||
|  | ||||
| /** Used to compose bitmasks for value comparisons. */ | ||||
| var COMPARE_PARTIAL_FLAG = 1, | ||||
|     COMPARE_UNORDERED_FLAG = 2; | ||||
|  | ||||
| /** | ||||
|  * A specialized version of `baseIsEqualDeep` for arrays with support for | ||||
|  * partial deep comparisons. | ||||
|  * | ||||
|  * @private | ||||
|  * @param {Array} array The array to compare. | ||||
|  * @param {Array} other The other array to compare. | ||||
|  * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. | ||||
|  * @param {Function} customizer The function to customize comparisons. | ||||
|  * @param {Function} equalFunc The function to determine equivalents of values. | ||||
|  * @param {Object} stack Tracks traversed `array` and `other` objects. | ||||
|  * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. | ||||
|  */ | ||||
| function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { | ||||
|   var isPartial = bitmask & COMPARE_PARTIAL_FLAG, | ||||
|       arrLength = array.length, | ||||
|       othLength = other.length; | ||||
|  | ||||
|   if (arrLength != othLength && !(isPartial && othLength > arrLength)) { | ||||
|     return false; | ||||
|   } | ||||
|   // Check that cyclic values are equal. | ||||
|   var arrStacked = stack.get(array); | ||||
|   var othStacked = stack.get(other); | ||||
|   if (arrStacked && othStacked) { | ||||
|     return arrStacked == other && othStacked == array; | ||||
|   } | ||||
|   var index = -1, | ||||
|       result = true, | ||||
|       seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; | ||||
|  | ||||
|   stack.set(array, other); | ||||
|   stack.set(other, array); | ||||
|  | ||||
|   // Ignore non-index properties. | ||||
|   while (++index < arrLength) { | ||||
|     var arrValue = array[index], | ||||
|         othValue = other[index]; | ||||
|  | ||||
|     if (customizer) { | ||||
|       var compared = isPartial | ||||
|         ? customizer(othValue, arrValue, index, other, array, stack) | ||||
|         : customizer(arrValue, othValue, index, array, other, stack); | ||||
|     } | ||||
|     if (compared !== undefined) { | ||||
|       if (compared) { | ||||
|         continue; | ||||
|       } | ||||
|       result = false; | ||||
|       break; | ||||
|     } | ||||
|     // Recursively compare arrays (susceptible to call stack limits). | ||||
|     if (seen) { | ||||
|       if (!arraySome(other, function(othValue, othIndex) { | ||||
|             if (!cacheHas(seen, othIndex) && | ||||
|                 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { | ||||
|               return seen.push(othIndex); | ||||
|             } | ||||
|           })) { | ||||
|         result = false; | ||||
|         break; | ||||
|       } | ||||
|     } else if (!( | ||||
|           arrValue === othValue || | ||||
|             equalFunc(arrValue, othValue, bitmask, customizer, stack) | ||||
|         )) { | ||||
|       result = false; | ||||
|       break; | ||||
|     } | ||||
|   } | ||||
|   stack['delete'](array); | ||||
|   stack['delete'](other); | ||||
|   return result; | ||||
| } | ||||
|  | ||||
| module.exports = equalArrays; | ||||
		Reference in New Issue
	
	Block a user
	 nik
					nik