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 (
trueoufalse). - 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
-1caso 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
undefinedcaso 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-1se 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.
Andressa Maria
Desenvolvedora sênior com forte atuação em PHP, JavaScript e tecnologias de backend.
Mais sobre o autor