Added the underscore node_module.
All checks were successful
Auto Maintenance Cycle / pre-commit Autoupdate (push) Successful in 39s
All checks were successful
Auto Maintenance Cycle / pre-commit Autoupdate (push) Successful in 39s
This commit is contained in:
36
node_modules/underscore/modules/uniq.js
generated
vendored
Normal file
36
node_modules/underscore/modules/uniq.js
generated
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
import isBoolean from './isBoolean.js';
|
||||
import cb from './_cb.js';
|
||||
import getLength from './_getLength.js';
|
||||
import contains from './contains.js';
|
||||
|
||||
// Produce a duplicate-free version of the array. If the array has already
|
||||
// been sorted, you have the option of using a faster algorithm.
|
||||
// The faster algorithm will not work with an iteratee if the iteratee
|
||||
// is not a one-to-one function, so providing an iteratee will disable
|
||||
// the faster algorithm.
|
||||
export default function uniq(array, isSorted, iteratee, context) {
|
||||
if (!isBoolean(isSorted)) {
|
||||
context = iteratee;
|
||||
iteratee = isSorted;
|
||||
isSorted = false;
|
||||
}
|
||||
if (iteratee != null) iteratee = cb(iteratee, context);
|
||||
var result = [];
|
||||
var seen = [];
|
||||
for (var i = 0, length = getLength(array); i < length; i++) {
|
||||
var value = array[i],
|
||||
computed = iteratee ? iteratee(value, i, array) : value;
|
||||
if (isSorted && !iteratee) {
|
||||
if (!i || seen !== computed) result.push(value);
|
||||
seen = computed;
|
||||
} else if (iteratee) {
|
||||
if (!contains(seen, computed)) {
|
||||
seen.push(computed);
|
||||
result.push(value);
|
||||
}
|
||||
} else if (!contains(result, value)) {
|
||||
result.push(value);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
Reference in New Issue
Block a user