mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-09 18:37:50 +00:00
Un-golf _.uniq().
This commit is contained in:
@@ -371,9 +371,12 @@
|
|||||||
// been sorted, you have the option of using a faster algorithm.
|
// been sorted, you have the option of using a faster algorithm.
|
||||||
// Aliased as `unique`.
|
// Aliased as `unique`.
|
||||||
_.uniq = _.unique = function(array, isSorted, iterator) {
|
_.uniq = _.unique = function(array, isSorted, iterator) {
|
||||||
|
var initial = iterator ? _.map(array, iterator) : array;
|
||||||
var results = [];
|
var results = [];
|
||||||
_.reduce(iterator ? _.map(array, iterator) : array, function (memo, value, index) {
|
// The `isSorted` flag is irrelevant if the array only contains two elements.
|
||||||
if (array.length < 3 || isSorted ? _.last(memo) !== value || !memo.length : !_.include(memo, value)) {
|
if (array.length < 3) isSorted = true;
|
||||||
|
_.reduce(initial, function (memo, value, index) {
|
||||||
|
if (isSorted ? _.last(memo) !== value || !memo.length : !_.include(memo, value)) {
|
||||||
memo.push(value);
|
memo.push(value);
|
||||||
results.push(array[index]);
|
results.push(array[index]);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user