function baseDifference(array, values, iteratee, comparator) {
let index = -1;
let length = array.length;
let result = [];
let includes = arrayIncludes;
let isCommon = true;
if (!length) {
return result;
}
if (iteratee) {
values = values.map(iteratee);
}
if (comparator) {
includes = arrayIncludesWith;
isCommon = false;
} else if (values.length >= 200) {
includes = cacheHas;
isCommon = false;
values = new SetCache(values);
}
outer:
while (++index < length) {
let value = array[index];
let computed = iteratee == null ? value : iteratee(value);
if (isCommon && computed === computed) {
let valuesIndex = values.length;
while (valuesIndex--) {
if (values[valuesIndex] === computed) {
continue outer;
}
}
result.push(value);
} else if (!includes(values, computed, comparator)) {
result.push(value);
}
}
return result;
}
Comments
0 B
|0 👍
/0 👎
0 B
|0 👍
/0 👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|0 👍
/0 👎
0 B
|👍
/👎