| var eq = require('./eq'); | |
| 
 | |
| /** | |
|  * 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) { | |
|   var index = -1, | |
|       length = array.length, | |
|       resIndex = 0, | |
|       result = []; | |
| 
 | |
|   while (++index < length) { | |
|     var value = array[index], | |
|         computed = iteratee ? iteratee(value) : value; | |
| 
 | |
|     if (!index || !eq(computed, seen)) { | |
|       var seen = computed; | |
|       result[resIndex++] = value === 0 ? 0 : value; | |
|     } | |
|   } | |
|   return result; | |
| } | |
| 
 | |
| module.exports = baseSortedUniq;
 |