Neste artigo você vai aprender como obter valores únicos em um array JavaScript – sem utilizar qualquer biblioteca, apenas com recursos da linguagem pura

Como obter valores únicos em um array capa

Fala galera, beleza? Bora aprender mais sobre os arrays de JavaScript e como retirar apenas os valores únicos!

Uma solução simples e eficaz é utilizando a função filter do JavaScript

A partir desta função é possível criar um filtro de fato, retirando apenas os elementos que nos interessam, baseado em uma condição

Então uma solução muito conhecida é:

function unique(value, index, self) { 
    return self.indexOf(value) === index;
}


var array = ['a', 'b', 'b', 'c', 'c'];

var unique = array.filter(unique);

console.log(unique);

Ela foi retirada do Stack Over Flow, deste post

Desta forma vamos receber apenas os valores únicos, pois no return ele verifica se o valor do primeiro índice encontrador é o mesmo do índice atual

E como isso pode ajudar?

Por que sempre é verificado o primeiro valor, então é impossível repetir o índice caso não seja o primeiro

Inibindo assim as demais repetições pelo resto do array, legal né? 😀

Com ES6

Com os novos recursos do JavaScript ES6 podemos também facilitar esta operação de itens únicos no array

Uma das formas é utilizando o Set

Veja um exemplo:

const array = ['a', 'b', 'b', 'c', 'c'];

const unique = [...new Set(array)];

console.log(unique)

De forma mais simples ainda, apenas os elementos que contem valores únicos serão atribuídos a variável unique

Conclusão

Neste artigo vimos como obter valores únicos em um array de duas maneiras

Na primeira vimos a utilização da função filter, criando uma nova função que retorna apenas os elementos únicos

Depois vimos com Set, um operador da versão ES6 do JavaScript

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest

1 Comentário
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Douglas

Queria a adaptação desta função quando os elementos deste array são objetos repetidos, não strings…

Last edited 2 anos atrás by Douglas