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
oufalse
). - 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()
eincludes()
, 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.
Escolha o método certo para verificar a presença de valores em arrays em JavaScript
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