Remover elementos repetidos de um array em JavaScript
2a atrás
Digamos que você tenha o seguinte array em JavaScript:
var arr = ['foo', 'bar', 'foo', 'hey', 'how'];
Os itens repetidos são os índices 0 e 2, "foo". Para retornar o array sem repetições, você pode usar o código a seguir:
arr.filter((a, i) => arr.indexOf(a) === i); // ['foo', 'bar', 'hey', 'how']
Explicação
arr = array original, i = índice atual, a = elemento atual do array. Se o elemento atual do array já estiver presente anteriormente no array, ele será encontrado com a função .indexOf() em uma posição diferente de i, sendo removido com o filtro.
No caso, quando o segundo "foo" for passar pela condição, a função .indexOf() retornará 0 ao invés de 2, por isso o segundo "foo" será removido do array filtrado.
Comentários (0)