Desenvolvedor de Software e Especialista em Tecnologia da Informação

Includes e indexOf em JavaScript: Existe ou Não?

Duas perguntas diferentes sobre o mesmo array: "esse item existe?" e "em que posição ele está?". Neste artigo você vai ver a diferença entre includes() e indexOf(), dois métodos que parecem parecidos, mas respondem coisas distintas. Uma habilidade essencial para qualquer programador que precisa verificar a presença de um valor em uma lista .


POV: Você perguntou se o item existe e descobriu onde ele está 😎🔍

Partindo de um array de nomes (Pedro, Maria e João), usamos includes() para perguntar se "Maria" está na lista — a resposta é um simples true ou false. Já o indexOf() vai além: ele retorna exatamente a posição onde o item está, nesse caso, a posição 1 (lembrando que os arrays em JavaScript começam a contar do zero, então Pedro é 0, Maria é 1 e João é 2). Quando testamos um nome que não existe no array, "José", o indexOf() retorna -1, um valor combinado especificamente para indicar "não encontrado" — já que 0 não serviria, pois é justamente a posição do primeiro item da lista.

Includes e indexOf em JavaScript: Existe ou Não?

Includes JavaScript IndexOf JavaScript Verificar Existência Array Posição Array Métodos de Array Array JavaScript Manipulação de Arrays Programador Iniciante RogerioPontesTI

"O includes vai verificar se o registro existe. E o indexOf vai verificar se o registro existe, ele vai me trazer a posição. Se não existe, ele vai me trazer o -1. Significa que esse registro não existe."


🔍 O que são includes() e indexOf() em JavaScript?

includes() e indexOf() são métodos de array em JavaScript que verificam a presença de um elemento, mas respondem a perguntas diferentes . O includes() pergunta "existe?" e retorna um booleano . O indexOf() pergunta "em que posição?" e retorna o índice ou -1 se não for encontrado .

includes() — Existe ou não?
O método includes() verifica se um array contém um determinado valor, retornando true ou false . É a forma mais direta de perguntar se um item está presente .
📍 indexOf() — Onde está?
O método indexOf() retorna o primeiro índice em que um elemento pode ser encontrado no array, ou -1 se não estiver presente . Ele responde "em que posição está o item?" .
INCLUDES E INDEXOF EM AÇÃO

const nomes = ["Pedro", "Maria", "João"];

// includes() - pergunta se existe
const existeMaria = nomes.includes("Maria");
console.log(existeMaria); // true

// indexOf() - pergunta onde está
const posicaoMaria = nomes.indexOf("Maria");
console.log(posicaoMaria); // 1 (Maria está na posição 1)

// Quando não existe
const existeJose = nomes.includes("José");
console.log(existeJose); // false

const posicaoJose = nomes.indexOf("José");
console.log(posicaoJose); // -1 (não encontrado)
        

📍 O método indexOf() — encontrando a posição

O método indexOf() é útil quando você precisa saber exatamente onde um elemento está no array . Ele retorna o índice da primeira ocorrência do elemento, ou -1 se o elemento não for encontrado .

INDEXOF NA PRÁTICA

const frutas = ["maçã", "banana", "laranja", "banana"];

// Primeira ocorrência de "banana"
const primeiraBanana = frutas.indexOf("banana");
console.log(primeiraBanana); // 1

// Elemento que não existe
const posicaoUva = frutas.indexOf("uva");
console.log(posicaoUva); // -1

// Buscando a partir de uma posição específica
const segundaBanana = frutas.indexOf("banana", 2);
console.log(segundaBanana); // 3
        
📖 Quando usar indexOf()?
  • Quando você precisa da posição do elemento no array
  • Para remover ou atualizar um elemento em uma posição específica
  • Para verificar se um elemento existe (comparando com -1)
  • Quando o código precisa saber onde o item está, não apenas se ele existe

✅ O método includes() — existe ou não?

O método includes() é a forma mais direta de perguntar se um array contém um determinado valor . Ele retorna true ou false , tornando o código mais legível .

INCLUDES NA PRÁTICA

const numeros = [1, 2, 3, 4, 5];

// Verificando existência
const temTres = numeros.includes(3);
console.log(temTres); // true

const temDez = numeros.includes(10);
console.log(temDez); // false

// Com strings
const nomes = ["Ana", "Carlos", "Beatriz"];
const temAna = nomes.includes("Ana");
console.log(temAna); // true
        
📖 Quando usar includes()?
  • Quando você só precisa saber se existe
  • Para validações — verificar se um item está em uma lista de permissões
  • Para condições — dentro de if e else
  • Quando a legibilidade é mais importante que a posição

⚖️ includes() vs indexOf() — Qual usar?

includes() — Existe?
const existe = lista.includes(item);
// Resposta: true ou false
            
📍 indexOf() — Onde está?
const posicao = lista.indexOf(item);
// Resposta: índice ou -1
            
📖 Resumo das diferenças
  • includes() — retorna true ou false
  • indexOf() — retorna o índice ou -1
  • includes() — pergunta "existe?"
  • indexOf() — pergunta "onde está?"

📚 Exemplos práticos

1. Validando permissões com includes()

EXEMPLO 1

const usuariosPermitidos = ["admin", "editor", "moderador"];
const usuario = "editor";

if (usuariosPermitidos.includes(usuario)) {
    console.log("Usuário autorizado!");
} else {
    console.log("Usuário não autorizado!");
}
        

2. Encontrando posição com indexOf()

EXEMPLO 2

const tarefas = ["estudar", "trabalhar", "descansar"];
const tarefa = "trabalhar";

const indice = tarefas.indexOf(tarefa);

if (indice !== -1) {
    console.log(`"${tarefa}" está na posição ${indice}`);
    // Removendo a tarefa
    tarefas.splice(indice, 1);
} else {
    console.log(`"${tarefa}" não encontrada`);
}
        

⏱️ Capítulos do vídeo

  • 00:00Includes e indexOf em JavaScript: qual a diferença
  • 00:16 — Criando o array de nomes para os testes
  • 00:23Includes() em JavaScript: verificando se um item existe
  • 00:33IndexOf() em JavaScript: descobrindo a posição de um item
  • 00:41 — O caso do -1: quando o indexOf() não encontra o item
  • 00:51 — Comparando o true do includes com a posição do indexOf
  • 01:04 — Revisando o array e as posições 0, 1 e 2
  • 01:21Encerramento e convite para se inscrever

🎯 Conclusão

includes() e indexOf() são dois métodos complementares para verificar a presença de elementos em arrays . Saber quando usar cada um é essencial para escrever código claro e eficiente .

Neste artigo, você aprendeu:

  • ✅ A diferença entre includes() e indexOf() em JavaScript
  • ✅ Como usar includes() para verificar se um item existe no array
  • ✅ Como usar indexOf() para descobrir a posição de um item
  • ✅ Por que indexOf() retorna -1 quando o item não é encontrado
  • ✅ Como os índices de um array começam a contar do zero
  • ✅ Quando usar includes() em vez de indexOf(), e vice-versa

💡 Lembre-se: Use includes() quando só precisa de uma resposta sim/não, e indexOf() quando precisa saber exatamente onde um item está . Saber a diferença evita código confuso e torna sua programação mais profissional .


🤔 O que você achou?

💬 Quer aprender JavaScript do ZERO? Comece agora a escrever seu primeiro código e seus fundamentos!


❓ FAQ: Perguntas Frequentes sobre Includes e IndexOf em JavaScript

Verifica se um item existe no array, retornando true ou false. É a forma mais direta de perguntar se um valor está presente .

Retorna a posição de um item no array, ou -1 se não existir. Ele responde 'em que posição está o item?' .

Porque 0 já é uma posição válida no array (o primeiro item); -1 indica ausência real .

Sim, o primeiro item sempre ocupa a posição 0, o segundo a posição 1, e assim por diante .

Não, ambos apenas consultam o array, sem modificar nada.

Quando você só precisa de uma resposta sim ou não, sem saber a posição, como em validações e condições .

Quando você precisa saber exatamente onde o item está no array, por exemplo, para removê-lo ou atualizá-lo .

Não, funciona com números, strings, booleanos e outros tipos de dado dentro do array .

Na prática, ambos percorrem o array de forma parecida até encontrar o item. A escolha deve ser baseada na clareza do código .

Sim, eles resolvem perguntas parecidas de formas diferentes e se complementam no dia a dia do programador .

includes() é melhor porque expressa diretamente a intenção: 'este valor está presente?' .

Sim, ao contrário do indexOf(), includes() consegue detectar NaN corretamente .

🎬 Assista ao Vídeos completo sobre Refatoração

O vídeo foi feito em Javascript mais o conceito pode ser utilizado em qualquer outra linguagem de programação..

🎬 Assista ao Vídeos completo sobre Refatoração


🔗 Conecte-se Comigo


💬 Você usaria includes() ou indexOf() com mais frequência? Você sabia por que indexOf() usa -1 e não 0 para indicar 'não encontrado'? Escreve aqui nos comentários! 👇

#JavaScript #Includes #IndexOf #Array #JavaScriptParaIniciantes #RogerioPontesTI