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
array.indexOf(elemento, [a partir de onde iniciar]);
Exemplo
Vamos encontrar a posição do primeiro três no array:
let arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);
console.log(res);
Resultado da execução do código:
2
Exemplo
Suponha que agora o elemento verificado não esteja no array:
let arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);
console.log(res);
Resultado da execução do código:
-1
Exemplo
Vamos iniciar a pesquisa a partir de uma posição especificada:
let arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);
console.log(res);
Resultado da execução do código:
5
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:
if (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:
if (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