JavaScript

Resgatar valores únicos de array em JavaScript

22 de abril de 2021

Resgatar valores únicos de array em JavaScript

Neste artigo você vai aprender a resgatar valores únicos de array em JavaScript, de uma forma simples e fácil

Resgatar valores únicos de array capa

Fala programador(a), beleza? Bora aprender mais sobre JavaScript e arrays!

O problema que precisamos resolver é pegar apenas valores que não se repetem em um array, ou seja, os valores únicos

Para resolver podemos utlizar a função filter, dos arrays

Lembrando que esta função está disponível apenas na versão ES6+ do JavaScript

Veja a solução na prática:

function itensUnicos(arr) {
	return arr.filter((v, i, a) => a.indexOf(v) === i)
}

var arr = [1, 2, 2, 3, 4, 4, 5, 6, 'a', 'b', 'b'];

var unicos = itensUnicos(arr);

console.log(unicos); // [1, 2, 3, 4, 5, 6, 'a', 'b']

Nas linhas acima definimos uma função, que vai filtrar apenas os itens únicos

A função filter recebe uma função anônima como argumento, que vai servir para filtrar os elementos de acordo com o que está escrito na função

Nesta função checamos se o elemento atual do loop existe no array, se não existe o elemento é inserido

Lembrando que o filter funciona como um loop, ele vai executar a função em cada um dos itens

Então o índice do elemento atual é verificado com indexOf, se houver algum valor retornado o elemento não entra novamente no array, pois já existe

Caso o índice não retorna algum valor, teremos a adição do elemento no array, pois o mesmo é um elemento novo e ainda não existe na lista

Conclusão

Neste artigo você viu como resgatar valores únicos de array em JavaScript

Utilizamos a função de array filter, que serve para filtrar itens de um determinado array

Utilizamos uma função que verifica os índices dos elementos, desta forma adicionamos apenas os elementos únicos, baseado no retorno da função anônima de filter

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

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x