PATH:
usr
/
local
/
lib
/
node_modules
/
bower
/
lib
/
node_modules
/
inquirer
/
node_modules
/
lodash
/
array
var baseCallback = require('../internal/baseCallback'), baseUniq = require('../internal/baseUniq'), isIterateeCall = require('../internal/isIterateeCall'), sortedUniq = require('../internal/sortedUniq'); /** * Creates a duplicate-free version of an array, using * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) * for equality comparisons, in which only the first occurence of each element * is kept. Providing `true` for `isSorted` performs a faster search algorithm * for sorted arrays. If an iteratee function is provided it's invoked for * each element in the array to generate the criterion by which uniqueness * is computed. The `iteratee` is bound to `thisArg` and invoked with three * arguments: (value, index, array). * * If a property name is provided for `iteratee` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `iteratee` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @alias unique * @category Array * @param {Array} array The array to inspect. * @param {boolean} [isSorted] Specify the array is sorted. * @param {Function|Object|string} [iteratee] The function invoked per iteration. * @param {*} [thisArg] The `this` binding of `iteratee`. * @returns {Array} Returns the new duplicate-value-free array. * @example * * _.uniq([2, 1, 2]); * // => [2, 1] * * // using `isSorted` * _.uniq([1, 1, 2], true); * // => [1, 2] * * // using an iteratee function * _.uniq([1, 2.5, 1.5, 2], function(n) { * return this.floor(n); * }, Math); * // => [1, 2.5] * * // using the `_.property` callback shorthand * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); * // => [{ 'x': 1 }, { 'x': 2 }] */ function uniq(array, isSorted, iteratee, thisArg) { var length = array ? array.length : 0; if (!length) { return []; } if (isSorted != null && typeof isSorted != 'boolean') { thisArg = iteratee; iteratee = isIterateeCall(array, isSorted, thisArg) ? undefined : isSorted; isSorted = false; } iteratee = iteratee == null ? iteratee : baseCallback(iteratee, thisArg, 3); return (isSorted) ? sortedUniq(array, iteratee) : baseUniq(array, iteratee); } module.exports = uniq;
[-] compact.js
[edit]
[-] sortedLastIndex.js
[edit]
[-] union.js
[edit]
[-] intersection.js
[edit]
[-] dropRightWhile.js
[edit]
[-] unzipWith.js
[edit]
[+]
..
[-] unique.js
[edit]
[-] dropRight.js
[edit]
[-] takeRight.js
[edit]
[-] drop.js
[edit]
[-] unzip.js
[edit]
[-] tail.js
[edit]
[-] flatten.js
[edit]
[-] lastIndexOf.js
[edit]
[-] dropWhile.js
[edit]
[-] object.js
[edit]
[-] findLastIndex.js
[edit]
[-] flattenDeep.js
[edit]
[-] take.js
[edit]
[-] rest.js
[edit]
[-] head.js
[edit]
[-] pullAt.js
[edit]
[-] first.js
[edit]
[-] without.js
[edit]
[-] uniq.js
[edit]
[-] zip.js
[edit]
[-] indexOf.js
[edit]
[-] slice.js
[edit]
[-] remove.js
[edit]
[-] zipObject.js
[edit]
[-] last.js
[edit]
[-] findIndex.js
[edit]
[-] fill.js
[edit]
[-] takeWhile.js
[edit]
[-] initial.js
[edit]
[-] pull.js
[edit]
[-] takeRightWhile.js
[edit]
[-] difference.js
[edit]
[-] zipWith.js
[edit]
[-] xor.js
[edit]
[-] chunk.js
[edit]
[-] sortedIndex.js
[edit]