2
respostas

Exercicio 3 da aula 4 do curso de arrays do JS (Queria uma avaliação da gambiarra que eu fiz)

A resolução ficou bem mais legivel, mas o meu funcionou tambem hehe

let numeros = [1,2,3,4,5,6,7,8,9]

function verificadorDeValor(array, numero){
    for (let i = 0; i < array.length; i++) {
        if (array[i] === numero){
    return   `O ${numero} está na posição ${i}`   
        }
        
   }
    if (i = array.length){
        return -1
   }
}

RetornoDaFunção = verificadorDeValor(numeros, 10)

console.log(RetornoDaFunção);
2 respostas

Olá Weslley! Tudo joia?

Primeiramente, parabéns por conseguir fazer o exercício funcionar! É sempre bom ver diferentes abordagens para resolver um problema. Vamos dar uma olhada na sua solução e ver se podemos fazer algumas melhorias.

Aqui está o seu código:

let numeros = [1,2,3,4,5,6,7,8,9];

function verificadorDeValor(array, numero){
    for (let i = 0; i < array.length; i++) {
        if (array[i] === numero){
            return `O ${numero} está na posição ${i}`;
        }
    }
    if (i = array.length){
        return -1;
    }
}

let RetornoDaFunção = verificadorDeValor(numeros, 10);

console.log(RetornoDaFunção);

Agora, vamos fazer algumas observações e melhorias:

  1. Erro na condição do if fora do loop: A condição if (i = array.length) está usando um único = em vez de ===. Isso faz com que i seja atribuído ao valor array.length, o que não é o que queremos. Deveria ser if (i === array.length).

  2. A condição if fora do loop é desnecessária: Como o loop for percorre todo o array, se o número não for encontrado, a função já deve retornar -1 após o loop.

Aqui está uma versão ligeiramente melhorada do seu código:

let numeros = [1,2,3,4,5,6,7,8,9];

function verificadorDeValor(array, numero){
    for (let i = 0; i < array.length; i++) {
        if (array[i] === numero){
            return `O ${numero} está na posição ${i}`;
        }
    }
    return -1; // Se o número não for encontrado, retorna -1
}

let retornoDaFuncao = verificadorDeValor(numeros, 10);

console.log(retornoDaFuncao);

Essa versão faz exatamente o que a sua faz, mas de uma maneira um pouco mais limpa.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

A solução está bem diferente do meu, por isso o meu medo.