CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes45downloads
_baseDifference.js68 linesDownload Raw Back to lodash-es
1import SetCache from './_SetCache.js';2import arrayIncludes from './_arrayIncludes.js';3import arrayIncludesWith from './_arrayIncludesWith.js';4import arrayMap from './_arrayMap.js';5import baseUnary from './_baseUnary.js';6import cacheHas from './_cacheHas.js';7 8/** Used as the size to enable large array optimizations. */9var LARGE_ARRAY_SIZE = 200;10 11/**12 * The base implementation of methods like `_.difference` without support13 * for excluding multiple arrays or iteratee shorthands.14 *15 * @private16 * @param {Array} array The array to inspect.17 * @param {Array} values The values to exclude.18 * @param {Function} [iteratee] The iteratee invoked per element.19 * @param {Function} [comparator] The comparator invoked per element.20 * @returns {Array} Returns the new array of filtered values.21 */22function baseDifference(array, values, iteratee, comparator) {23  var index = -1,24      includes = arrayIncludes,25      isCommon = true,26      length = array.length,27      result = [],28      valuesLength = values.length;29 30  if (!length) {31    return result;32  }33  if (iteratee) {34    values = arrayMap(values, baseUnary(iteratee));35  }36  if (comparator) {37    includes = arrayIncludesWith;38    isCommon = false;39  }40  else if (values.length >= LARGE_ARRAY_SIZE) {41    includes = cacheHas;42    isCommon = false;43    values = new SetCache(values);44  }45  outer:46  while (++index < length) {47    var value = array[index],48        computed = iteratee == null ? value : iteratee(value);49 50    value = (comparator || value !== 0) ? value : 0;51    if (isCommon && computed === computed) {52      var valuesIndex = valuesLength;53      while (valuesIndex--) {54        if (values[valuesIndex] === computed) {55          continue outer;56        }57      }58      result.push(value);59    }60    else if (!includes(values, computed, comparator)) {61      result.push(value);62    }63  }64  return result;65}66 67export default baseDifference;68 
basant307/AI_Governance_Project · CoolFace