mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-31 15:27:50 +00:00
30 lines
715 B
JavaScript
30 lines
715 B
JavaScript
import eq from './eq.js';
|
|
|
|
/**
|
|
* The base implementation of `sortedUniq` and `sortedUniqBy`.
|
|
*
|
|
* @private
|
|
* @param {Array} array The array to inspect.
|
|
* @param {Function} [iteratee] The iteratee invoked per element.
|
|
* @returns {Array} Returns the new duplicate free array.
|
|
*/
|
|
function baseSortedUniq(array, iteratee) {
|
|
let seen;
|
|
let index = -1;
|
|
let resIndex = 0;
|
|
|
|
const length = array.length;
|
|
const result = [];
|
|
|
|
while (++index < length) {
|
|
const value = array[index], computed = iteratee ? iteratee(value) : value;
|
|
if (!index || !eq(computed, seen)) {
|
|
seen = computed;
|
|
result[resIndex++] = value === 0 ? 0 : value;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
export default baseSortedUniq;
|