Remover duplicatas
Em APIs e formulários, dados duplicados geram inconsistências e erros. Remover duplicatas é rotina ao processar listas de IDs, e-mails ou produtos antes de exibir ou armazenar.
O PROBLEMA
Remova duplicatas de 3 formas: Set, filter+indexOf, reduce.
EXEMPLO
[1,2,2,3,4,4,5] Com Set: [1,2,3,4,5]
SOBRE O CONCEITO
O Set elimina duplicatas automaticamente por armazenar valores únicos; convertê-lo de volta para array com spread [...new Set(arr)] é eficiente (O(n)). filter com indexOf compara se o índice da primeira ocorrência é o atual: arr.filter((v, i) => arr.indexOf(v) === i); embora didático, é O(n²) por percorrer a lista a cada indexOf. reduce usa um acumulador e includes para checar duplicatas: arr.reduce((acc, v) => acc.includes(v) ? acc : [...acc, v], []). O erro comum é achar que filter+indexOf é performático; na prática, Set ou Map são preferíveis.
RESOLUÇÃO