Oi gente, tudo bem? Estou resolvendo o exercício 03 da aula do Módulo: JavaScript : conhecendo arrays. Consegui resolver usando a forma tradicional, com um loop for iterando sobre os elementos e verificando se pra cada iteração o valor procurado está presente. Entretanto, gostaria de saber se consigo uma solução usando forEach. tentei diversas formas aqui, mas, por algum motivo que não estou conseguindo enxergar, meu código não está resolvendo da forma correta. Até tentei apelar pelo método de objeto indexOf, porém, sem sucesso. Meu código está assim:
const arrayRef = [1, 5, 10, 20, 14];
const valorTeste = 20;
const saidaF = '-1';
const i = 0;
let valorEncontrado;
valor = arrayRef.forEach(verificaValor);
function verificaValor (valor) {
if (valor == valorTeste){
valorEncontrado = arrayRef.indexOf(valor);
//console.log(valor)
// console.log(i)
}
else{
valorEncontrado = saidaF;
}
return valorEncontrado
}
console.log(valorEncontrado)
Em resumi, estou passando via forEach por cada elemento do arrayRef, e dentro do próprio for each tentanto compará-lo com um valor de referência (valorTeste) e então procurar qual é o índice desse elemento dentro do do próprio arrayRef. Caso a condição não seja atendida, o valor de saída assume uma variável que eu criei como saídaF para representar o -1.
O problema é que os resultados são sempre '-1', tanto para os casos em que o o valorTeste não está no arrayRef quanto para os casos em que está. A única situação em que o resultado é correto, é quando eu passo o último valor do arrayRef (nesse nosso caso, o valor 14).
Depois disso ainda precisarei implementar a posição em que o elemento foi encontrado, para isso, criei a variável "i" para funcionar como um contador e exibir seu valor no momento em que o valorTeste for encontrado. Mas ainda não conseguir chegar nisso.
Será que é possível uma solução via forEach?
Obrigado sempre!!