Files
lodash/.internal/baseSortedUniq.js
2017-03-12 23:16:34 -07:00

30 lines
702 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
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