import curry1 from "../function/curry1"; import findIndex from "./findIndex"; import equals from "../logic/equals"; import reduce from "./reduce"; /** * Returns a new list with duplicate values removed. * The comparison is done with the `equals` function. * * @see equals * @param {any[]} list * @returns {any[]} */ const unique = (list) => { if (list.length < 2) { return list.slice(); } return reduce( (acc, element) => { if (findIndex(equals(element), acc) === -1) { acc.push(element); } return acc; }, [], list ); }; export default curry1(unique);