Files
lodash/_baseSortedUniq.js
2017-01-09 12:20:58 -08:00

31 lines
762 B
JavaScript

import eq from './eq.js';
/**
* The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without
* support for iteratee shorthands.
*
* @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;