Verificando se um valor existe em um array em JavaScript

Entenda como usar os métodos includes(), indexOf() e find() para verificar se um valor existe em um array em JavaScript.

Como verificar se um valor existe em um array (includes, indexOf, find)?

Em JavaScript, verificar se um valor existe em um array é uma tarefa comum, e para isso, a linguagem oferece diversos métodos úteis: includes(), indexOf() e find(). Cada um desses métodos tem suas particularidades e pode ser usado de acordo com a necessidade de seu código.

Método includes()

O método includes() verifica se um determinado valor está presente em um array, retornando true se o valor for encontrado e false caso contrário. Esse método é simples e direto, sendo ideal quando você só precisa saber se um valor existe no array, sem se importar com o índice ou outras propriedades do elemento.

Exemplo de código com includes():

let frutas = ['maçã', 'banana', 'laranja'];
console.log(frutas.includes('banana'));  // Exibe true
console.log(frutas.includes('morango'));  // Exibe false

Neste exemplo, includes() verifica se a string 'banana' está presente no array frutas e retorna true. Quando procuramos por 'morango', que não está no array, o método retorna false.

Características do includes()

  • Retorna um valor booleano (true ou false).
  • Simples e direto, útil quando você apenas quer saber se o valor existe no array.
  • Funciona bem para arrays de valores primitivos (strings, números).

Método indexOf()

O método indexOf() retorna o índice da primeira ocorrência de um valor em um array. Se o valor não for encontrado, ele retorna -1. Esse método é útil quando você precisa não só verificar a presença de um valor, mas também saber sua posição no array.

Exemplo de código com indexOf():

let frutas = ['maçã', 'banana', 'laranja'];
console.log(frutas.indexOf('banana'));  // Exibe 1
console.log(frutas.indexOf('morango'));  // Exibe -1

Neste exemplo, indexOf() retorna o índice de 'banana', que é 1, e retorna -1 quando procuramos por 'morango', indicando que o valor não está presente no array.

Características do indexOf()

  • Retorna o índice do valor ou -1 caso o valor não seja encontrado.
  • Útil quando você precisa tanto saber se o valor existe quanto sua posição no array.
  • Funciona bem para arrays com valores primitivos.

Método find()

O método find() é mais avançado do que includes() e indexOf(). Ele retorna o primeiro elemento que satisfaz a condição definida em uma função callback, ou undefined caso nenhum elemento seja encontrado. Esse método é muito útil quando você precisa procurar um objeto ou valor complexo dentro de um array de objetos.

Exemplo de código com find():

let frutas = [{ nome: 'maçã', cor: 'vermelha' }, { nome: 'banana', cor: 'amarela' }, { nome: 'laranja', cor: 'laranja' }];
let frutaAmarela = frutas.find(function(fruta) {
  return fruta.cor === 'amarela';
});
console.log(frutaAmarela);  // Exibe { nome: 'banana', cor: 'amarela' }

Aqui, find() procura o primeiro objeto no array que tenha a propriedade cor igual a 'amarela' e retorna o objeto correspondente.

Características do find()

  • Retorna o primeiro elemento que atende à condição ou undefined caso não encontre nenhum.
  • Ideal para arrays de objetos, pois permite procurar elementos com base em várias condições.
  • Diferente de indexOf() e includes(), que verificam a presença de valores específicos, find() oferece maior flexibilidade com funções callback.

Comparando includes(), indexOf() e find()

Método Retorno Uso
includes() true ou false Verifica a presença de um valor no array.
indexOf() Índice ou -1 Retorna o índice do valor ou -1 se não encontrado.
find() Elemento ou undefined Retorna o primeiro elemento que atende à condição de uma função callback.

Quando usar cada método?

  • Use includes() quando você quiser verificar rapidamente se um valor existe em um array, sem se importar com sua posição ou outras propriedades.
  • Use indexOf() quando você precisar tanto verificar se um valor existe quanto saber sua posição no array.
  • Use find() quando precisar procurar um elemento complexo ou realizar buscas mais sofisticadas em um array de objetos.

Conclusão

Escolher entre includes(), indexOf() e find() depende do seu caso de uso. Cada um desses métodos tem seu propósito específico, seja para verificar a presença de um valor, encontrar sua posição ou realizar buscas mais avançadas. Saber quando usar cada um ajudará a escrever código mais eficiente e legível.

Verificar se um valor existe em um array é uma tarefa fundamental ao trabalhar com arrays em JavaScript. A escolha entre includes(), indexOf() e find() depende do que você precisa fazer com os dados encontrados. Se você só precisa saber se um valor está presente, use includes(). Se deseja a posição do valor ou o próprio índice, indexOf() é o método certo. Por fim, se você trabalha com objetos ou precisa de buscas mais complexas, o find() oferece a flexibilidade necessária. Cada um desses métodos é importante para tornar seu código mais eficiente ao lidar com arrays.

Algumas aplicações:

  • Usar includes() para verificar se um item está presente em uma lista de dados.
  • Usar indexOf() quando você precisar tanto de uma verificação de presença quanto da posição do valor no array.
  • Utilizar find() para procurar um item específico em um array de objetos, como usuários, produtos, ou registros.
  • Aplicar esses métodos em sistemas de busca ou em qualquer situação onde você precise validar a existência de um item ou suas propriedades.

Dicas para quem está começando

  • Se você só precisa saber se o valor existe no array, prefira usar includes(), pois é mais simples e direto.
  • Se precisar saber a posição do valor, use indexOf() para obter o índice ou -1 se não for encontrado.
  • Experimente usar find() quando você estiver lidando com arrays de objetos e quiser procurar por uma propriedade específica.
  • Pratique a diferença entre esses métodos e escolha sempre o mais adequado para o seu caso de uso.

Contribuições de Andressa Maria

Compartilhe este tutorial: Como verificar se um valor existe em um array (includes, indexOf, find)?

Compartilhe este tutorial

Continue aprendendo:

Qual a diferença entre forEach e map?

Entenda as diferenças entre os métodos `forEach()` e `map()` em JavaScript e saiba quando usar cada um para manipular arrays de forma eficaz.

Tutorial anterior

Como ordenar arrays em JavaScript (sort() e reverse())?

Entenda como ordenar arrays em JavaScript com os métodos `sort()` e `reverse()`, e saiba quando e como utilizá-los para ordenar dados.

Próximo tutorial