UNPKG

foop

Version:

interfaces that describe their intentions.

40 lines (38 loc) 3.13 kB
/* eslint prefer-includes/prefer-includes: "OFF" */ /** * @desc use in array.filter(uniq) to de-dupe values using indexOf * @since 0.1.0 * @memberOf array * * @param {*} value value in array iteration * @param {number} index current index * @param {Array} arr array being iterated, `thisArg` when using .filter * @return {Array} de-duped/uniqued array * * @func * @name uniq * @alias unique * * {@link https://github.com/lodash/lodash/blob/master/uniq.js lodash-uniq} * {@link https://github.com/mobxjs/mobx/blob/master/src/utils/utils.ts#L58 mobx-uniq} * {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L559 underscore-uniq} * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter mozilla-array-filter} * @see {@link mozilla-array-filter} * @see {@link underscore-uniq} * @see {@link mobx-uniq} * @see {@link lodash-uniq} * * @example * * var list = [ * 1, 2, 3, * 1, 2, 3, * 1, 2, 3 * ] * * list.filter(uniq) * //=> [1, 2, 3] * */ module.exports = function (value, index, arr) { return arr.indexOf(value) === index; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcS5qcyIsInNvdXJjZXMiOlsidW5pcS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgcHJlZmVyLWluY2x1ZGVzL3ByZWZlci1pbmNsdWRlczogXCJPRkZcIiAqL1xuXG4vKipcbiAqIEBkZXNjIHVzZSBpbiBhcnJheS5maWx0ZXIodW5pcSkgdG8gZGUtZHVwZSB2YWx1ZXMgdXNpbmcgaW5kZXhPZlxuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgYXJyYXlcbiAqXG4gKiBAcGFyYW0gIHsqfSB2YWx1ZSB2YWx1ZSBpbiBhcnJheSBpdGVyYXRpb25cbiAqIEBwYXJhbSAge251bWJlcn0gaW5kZXggY3VycmVudCBpbmRleFxuICogQHBhcmFtICB7QXJyYXl9IGFyciBhcnJheSBiZWluZyBpdGVyYXRlZCwgYHRoaXNBcmdgIHdoZW4gdXNpbmcgLmZpbHRlclxuICogQHJldHVybiB7QXJyYXl9IGRlLWR1cGVkL3VuaXF1ZWQgYXJyYXlcbiAqXG4gKiBAZnVuY1xuICogQG5hbWUgdW5pcVxuICogQGFsaWFzIHVuaXF1ZVxuICpcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaC9ibG9iL21hc3Rlci91bmlxLmpzIGxvZGFzaC11bmlxfVxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tb2J4anMvbW9ieC9ibG9iL21hc3Rlci9zcmMvdXRpbHMvdXRpbHMudHMjTDU4IG1vYngtdW5pcX1cbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvYmxvYi9tYXN0ZXIvdW5kZXJzY29yZS5qcyNMNTU5IHVuZGVyc2NvcmUtdW5pcX1cbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9maWx0ZXIgbW96aWxsYS1hcnJheS1maWx0ZXJ9XG4gKiBAc2VlIHtAbGluayBtb3ppbGxhLWFycmF5LWZpbHRlcn1cbiAqIEBzZWUge0BsaW5rIHVuZGVyc2NvcmUtdW5pcX1cbiAqIEBzZWUge0BsaW5rIG1vYngtdW5pcX1cbiAqIEBzZWUge0BsaW5rIGxvZGFzaC11bmlxfVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICB2YXIgbGlzdCA9IFtcbiAqICAgICAgMSwgMiwgMyxcbiAqICAgICAgMSwgMiwgMyxcbiAqICAgICAgMSwgMiwgM1xuICogICBdXG4gKlxuICogICBsaXN0LmZpbHRlcih1bmlxKVxuICogICAvLz0+IFsxLCAyLCAzXVxuICpcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSAodmFsdWUsIGluZGV4LCBhcnIpID0+IGFyci5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXhcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFDQSxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQUEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxBQUFHLFNBQUEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLEdBQUE7In0=