Método indexOf

O método indexOf realiza a pesquisa de um elemento em um array. No primeiro parâmetro especificamos o elemento a ser pesquisado. O método retorna o índice do primeiro elemento encontrado, ou -1, se o elemento não existir. O segundo parâmetro opcional do método define a posição a partir da qual a pesquisa deve começar.

Sintaxe

javascriptarray.indexOf(elemento, [a partir de onde iniciar]);

Exemplo

Vamos encontrar a posição do primeiro três no array:

javascriptlet arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);

console.log(res);

Resultado da execução do código:

javascript2

Exemplo

Suponha que agora o elemento verificado não esteja no array:

javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);

console.log(res);

Resultado da execução do código:

javascript-1

Exemplo

Vamos iniciar a pesquisa a partir de uma posição especificada:

javascriptlet arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);

console.log(res);

Resultado da execução do código:

javascript5

Erro comum

Às vezes o método é usado para verificar a presença de um elemento em um array. Nesse caso, é fácil cometer um erro se a verificação for feita da seguinte maneira:

javascriptif (arr.indexOf(3)) {
  console.log(true);
} else {
  console.log(false);
}

Essa verificação funcionará para todas as posições, exceto a zero - pois ela é interpretada como false.

A maneira correta de verificar a presença do elemento é a seguinte:

javascriptif (arr.indexOf(3) !== -1) {
  console.log(true);
} else {
  console.log(false);
}

Veja também

  • método includes,
    que verifica a presença de um elemento em um array
  • método lastIndexOf,
    que pesquisa elementos a partir do final
  • método at,
    que retorna um elemento do array pelo seu índice
  • método match,
    que pesquisa correspondências em uma string
  • método search,
    que executa uma pesquisa