Bem-vindos à nossa comunidade!

Junte-se a nós e faça parte hoje mesmo!

Aula: Métodos do Array #01

Raquel

Membro
Cadastro
24/9/20
Postagens
234
Curtidas
226
Pontuação
110
O que acontece quando se passa dois parâmetros para o indexOf?

O método indexOf te retorna o índice que o valor se encontra, e caso não esteja presente no Array, ele te retorna -1.

É por isso que, quando você faz array.indexOf(2) ele te mostra 0, porque de fato o 2 está no índice 0 do Array, e te mostra -1 quando você faz array.indexOf(7), visto que não há 7 no Array.

Quando você passa dois parâmetros, o primeiro é chamado, segundo o Firefox MDN, de "elemento de pesquisa", pois é ele que vai ser procurado no Array; o segundo é o "ponto inicial", ou seja, é por onde o indexOf vai começar a procurar.

Então quando você manda um array.indexOf(2, -3), o retorno continua sendo 0, porque ele vai começar a procurar do ponto -3 do Array, e vai parar ao encontrar o 2, no índice 0.

Sugiro a leitura desse link aqui para mais informação sobre: Array.prototype.indexOf()
 

Raquel

Membro
Cadastro
24/9/20
Postagens
234
Curtidas
226
Pontuação
110
O indexOf para de procurar uma vez que acha o valor?

Ele vai percorrer o Array todo e te retornar o índice que o valor que você procura está!

Se o valor que você estiver procurando não estiver dentro do array, o indexOf vai retornar -1.
Se o valor estiver dentro do array, o indexOf vai retornar o índice referente àquele valor.

JavaScript:
let arr = [ -1, 0, 1, 2, 3]
console.log(arr.indexOf(-1)) //retorna 0 pois -1 é o PRIMEIRO índice do array
console.log(arr.indexOf(-2)) //retorna -1 pois NÃO EXISTE -2 dentro do array

Agora, quando você passa dois parâmetros para o indexOf, o primeiro vai ser o valor que ele vai procurar, e o segundo vai ser a partir de que ponto do array ele vai procurar. Então ele começa a busca a partir desse ponto, até o final do array; se não encontrar, ele retorna -1; se encontrar, ele retorna o índice onde o valor está armazenado.

JavaScript:
let arr = [ -1, 0, 1, 2, 3]
console.log(arr.indexOf(3, 2))
//estamos procurando o valor 3, começando a partir do índice 2 - que é o valor 1
//ele retorna 4 pois encontrou o valor 3 na posição 4

Começando de uma posição fora do array e procurando um valor que não existe dentro dele:

JavaScript:
let arr = [ -1, 0, 1, 2, 3]
console.log(arr.indexOf(4, -2))
//aqui, dessa vez, procurando o valor 4, começando da posição -2
//que seria à esquerda do array, visto que os números à esquerda do zero são os números negativos
//ele retorna -1 pois o valor 4 não está dentro do array
 
Top