1
resposta

[Bug] Preciso de ajuda

const listaLivros = require("./array.js");

function encontraMenores (pivo, array){
    let menores = 0;
     for (let atual = 0; atual < array.length; atual++) {
        let produtoAtual = array[atual]
        if (produtoAtual.preco < pivo.preco) {
                menores++
        }

     }

    return menores;
}

console.log (encontraMenores(listaLivros));

Meu terminal deu erroapareceu isto

for (let atual = 0; atual < array.length; atual++) { ^

TypeError: Cannot read properties of undefined (reading 'length')

1 resposta

Olá, Ellyda!

Pelo que percebi no código que você compartilhou, o erro que está ocorrendo é porque a função encontraMenores está sendo chamada sem o segundo argumento necessário. No seu código, você chamou encontraMenores(listaLivros);, mas a função espera dois parâmetros: um pivô e o array. O pivô é o livro de referência para comparar os preços, e o array é onde a busca será realizada.

Aqui está como você pode corrigir o erro:

  1. Primeiro, você precisa identificar qual livro será o pivô. No contexto da aula, parece que o livro de Java com preço de R$30 é o pivô. Assumindo que este livro está na posição 2 do array, você deve passar esse livro como o primeiro argumento da função.

  2. O segundo argumento deve ser o array completo listaLivros.

Aqui está o trecho do código corrigido:

const listaLivros = require("./array.js");

function encontraMenores(pivo, array){
    let menores = 0;
    for (let atual = 0; atual < array.length; atual++) {
        let produtoAtual = array[atual];
        if (produtoAtual.preco < pivo.preco) {
            menores++;
        }
    }
    return menores;
}

// Assumindo que o livro de Java com preço de R$30 está na posição 2 do array
console.log(encontraMenores(listaLivros[2], listaLivros));

Com essa alteração, a função encontraMenores deverá receber corretamente os dois argumentos necessários e o erro de TypeError: Cannot read properties of undefined (reading 'length') deve ser resolvido, pois agora o array não será mais undefined.

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

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