function equalArrays(array, other, equalFunc, customizer, isWhere, stackA, stackB) {
	      var index = -1,
	          arrLength = array.length,
	          othLength = other.length,
	          result = true;

	      if (arrLength != othLength && !(isWhere && othLength > arrLength)) {
	        return false;
	      }
	      // Deep compare the contents, ignoring non-numeric properties.
	      while (result && ++index < arrLength) {
	        var arrValue = array[index],
	            othValue = other[index];

	        result = undefined;
	        if (customizer) {
	          result = isWhere
	            ? customizer(othValue, arrValue, index)
	            : customizer(arrValue, othValue, index);
	        }
	        if (typeof result == 'undefined') {
	          // Recursively compare arrays (susceptible to call stack limits).
	          if (isWhere) {
	            var othIndex = othLength;
	            while (othIndex--) {
	              othValue = other[othIndex];
	              result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB);
	              if (result) {
	                break;
	              }
	            }
	          } else {
	            result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB);
	          }
	        }
	      }
	      return !!result;
	    }
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 {Function} equalFunc The function to determine equivalents of values.
@param {Function} [customizer] The function to customize comparing arrays.
@param {boolean} [isWhere] Specify performing partial comparisons.
@param {Array} [stackA] Tracks traversed `value` objects.
@param {Array} [stackB] Tracks traversed `other` objects.
@returns {boolean} Returns `true` if the arrays are equivalent, else `false`.