Retirar duplicados de um array em JavaScript
- 
          
            Utilize o Setpara remover duplicados em JavaScript com ECMAScript 6spreadsintaxe
- 
          
            Utilize Array.filter()para remover os Duplicados do JavaScript Array
- 
          
            Utilizar hashtablepara remover duplicação de um Array Primitivo em JavaScript
- 
          
            Use as bibliotecas _.uniq()Função deunderscoreeLoDashpara remover duplicatas de arrays em JavaScript
 
Este tutorial irá explicar como podemos remover duplicados de um array em JavaScript usando diferentes métodos. Um dos métodos é passar o array alvo para o construtor da classe Set para devolver um array equivalente não duplicado. Outra forma é utilizar o método filter() do JavaScript Array e implementar a condição de teste na sua função de chamada de retorno.
Utilize o Set para remover duplicados em JavaScript com ECMAScript 6 spread sintaxe
    
Em Matemática, o array contém um grupo de elementos únicos, não duplicados. Em JavaScript, a classe Set pode obter todos esses elementos não duplicados a partir de um array.
Com ECMAScript 6, podemos utilizar o poder da sintaxe de propagação utilizando a classe Set para obter um novo array de elementos não duplicados do que enviamos para o construtor do Set().
var arr = [1, 2, 3, 4, 1, 2, 3, 1, 2, 3]
    var uniqueArr = [...new Set(arr)]
console.log(uniqueArr)
Resultado:
[1, 2, 3, 4]
Utilize Array.filter() para remover os Duplicados do JavaScript Array
A matriz JavaScript introduziu uma das funções de ordem superior chamada filter(), que faz loops em cada elemento do array, aplica uma condição de teste nela, e só devolve esse elemento se cumprir a condição. Esta condição de teste será implementada dentro da função chamada de retorno, passada como argumento ao método filter().
Podemos remover as duplicações do array, definindo a condição de teste para verificar se o índice do elemento actual em loop é a primeira ocorrência nessa matriz. A função filter() tomará o argumento extra pos que representará o índice do array do elemento durante a execução.
var arrTwo = ['Hello 1 ', ' Hello 2 ', 'Hello 1 ', ' Hello 2 ', 'Hello 1 again']
    const filteredArray = arrTwo.filter(function(ele, pos) {
      return arrTwo.indexOf(ele) == pos;
    })
console.log('The filtered array ', filteredArray);
Resultado:
The filtered array  (3) ["Hello 1 ", " Hello 2 ", "Hello 1 again"]
Se pudermos utilizar o JavaScript ECMAScript 6 sintaxe de seta, a remoção da operação duplicada será implementada de uma forma melhor.
var arrTwo =
    ['Hello 1 ', ' Hello 2 ', 'Hello 1 ', ' Hello 2 ', 'Hello 1 again'];
const filteredArray = arrTwo.filter((ele, pos) => arrTwo.indexOf(ele) == pos);
console.log('The filtered array', filteredArray);
Resultado:
The filtered array  (3) ["Hello 1 ", " Hello 2 ", "Hello 1 again"]
Utilizar hashtable para remover duplicação de um Array Primitivo em JavaScript
Se tivermos um array composto apenas de tipos primitivos como números [ 1, 2, 3, 4, 1, 2, 3 ] e quisermos remover duplicados desse array [ 1, 2, 3, 4 ] podemos implementar a nossa função filterArray() utilizando hashtables.
Iremos construir um objecto temporário chamado found que incluirá todos os valores não duplicados. Dentro da função filter, a nossa condição retornará false se o elemento já existir no objecto found; caso contrário, adicionaremos esse elemento ao objecto found com o valor true;
var arrThree =
    [
      'Hello 1 ', ' Hello 2 ', ' Hello 2 ', 'Welcome', 'Hello 1 again',
      'Welcome', 'Goodbye'
    ]
    function filterArray(inputArr) {
      var found = {};
      var out = inputArr.filter(function(element) {
        return found.hasOwnProperty(element) ? false : (found[element] = true);
      });
      return out;
    }
const outputArray = filterArray(arrThree);
console.log('Original Array', arrThree);
console.log('Filtered Array', outputArray);
Resultado:
Original Array ["Hello 1 ", " Hello 2 ", " Hello 2 ", "Welcome", "Hello 1 again", "Welcome", "Goodbye"]
Filtered Array ["Hello 1 ", " Hello 2 ", "Welcome", "Hello 1 again", "Goodbye"]
Use as bibliotecas _.uniq() Função de underscore e LoDash para remover duplicatas de arrays em JavaScript
    
Se já estivermos a utilizar qualquer um dos métodos da biblioteca underscore, podemos utilizar o método _.uniq(), uma vez que devolve apenas a primeira ocorrência do elemento do array de entrada.
var arrFive = [1, 2, 3, 1, 5, 2];
console.log('LoDash output', _.uniq(arrFive));
LoDash output [1, 2, 3, 5]
podemos importar a biblioteca a partir de aqui.