Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida com o método "lastIndexOf"

Olá!

Estou fazendo uns testes com alguns métodos de array, e me veio uma dúvida com relação ao "lastIndexOf()". O meu código é o seguinte:

const lista_2 = [78, 1, 9, 4, 12];

function encontraUltimoIndice(){

const novaLista = lista_2.lastIndexOf((valor) => valor <= 7);
return novaLista;

}; console.log(encontraUltimoIndice());

Quando estava fazendo os testes, eu não tive problema algum em executar esse código usando outros métodos, como o "find()" e o "indexOf()", mas quando fui executar esse teste com o "lastIndexOf()", eu só tenho como resposta -1, independente do valor que eu passo pra fazer a comparação na Arrow Function ou da posição dos elementos no array. Se alguém souber me informar o que pode ser o erro, eu agradeço e muito.

Abraços!

2 respostas
solução!

Oi Iury, tudo bem?

O método lastIndexOf() é utilizado para encontrar o último índice de um elemento em um array. No entanto, ele não aceita uma função de callback como parâmetro, como você está tentando fazer.

O lastIndexOf() espera receber um valor específico como parâmetro, e não uma função de comparação. Ele irá percorrer o array de trás para frente e retornar o índice da última ocorrência desse valor.

No seu código, você está passando uma função de comparação (valor) => valor <= 7 como parâmetro para o lastIndexOf(). Isso não está correto.

Se você deseja encontrar o último índice de um elemento que atenda a uma condição específica, você pode utilizar o método findLastIndex(). Por exemplo:

const lista_2 = [78, 1, 9, 4, 12];

function encontraUltimoIndice() {
    const novoIndice = lista_2.findLastIndex((valor) => valor <= 7);
    return novoIndice;
}

console.log(encontraUltimoIndice());

Dessa forma, o método findLastIndex() irá percorrer o array de trás para frente e retornar o índice do último elemento que seja menor ou igual a 7.

Um abraço e bons estudos.

Olá, Lorena! Tudo bom sim, e com você?

Ahh sim, bom saber. Muitíssimo obrigado, viu, foi bem esclarecedor!

Abraços!