function removeDublication(array, cb) { if (!array) { throw new Error("No array has been provided."); } if (!cb) { throw new Error("No callback has been provided."); } return array.reduce( (acc, value) => { const isExist = acc.some(v => cb(v, value)); if (!isExist) { acc = [...acc, value]; } return acc; }, [array[0]] ); }