2
respostas

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

Está aparecendo isso no console. Não consegui encontrar o erro. Quando faço um

console.log(listaArray[0].preco)

retorna o valor do preço do primeiro item direitinho. No entanto, quando rodo o código todo como na aula aparece esse erro.

O código está assim:

const listaLivros = require("./listaLivros-mergeSort");

function mergeSort(array) {

    if (array.length > 1) {
        const meio = Math.floor(array.length / 2);
        const parte1 = mergeSort(array.slice(0, meio));
        const parte2 = mergeSort(array.slice(meio, array.length));
        array = ordena(parte1, parte2);
    }

    return array;
}


function ordena(parte1, parte2){
    let posicaoAtualParte1 = 0;
    let posicaoAtualParte2 = 0;
    const resultado = [];

    while(posicaoAtualParte1 < parte1.length && posicaoAtualParte2 < parte2.length){
        let produtoAtualParte1 = parte1[posicaoAtualParte1];
        let produtoAtualParte2 = parte2[posicaoAtualParte2];

        if(produtoAtualParte1.preco < produtoAtualParte2.preco){
            resultado.push(produtoAtualParte1)
            posicaoAtualParte1 ++;
        } else{
            resultado.push(posicaoAtualParte2);
            posicaoAtualParte2 ++;
        }
    }

    return resultado.concat(posicaoAtualParte1 < parte1.length ? parte1.slice(posicaoAtualParte1) : parte2.slice(posicaoAtualParte2));
}

console.log(mergeSort(listaLivros))
2 respostas

ATUALIZAÇÃO

O problema anterior se devia a uma vírgula a mais no arquivo da lista. Tirando a vírgula, não deu mais o mesmo erro. Mas ainda assim não está dando o mesmo resultado da aula. Dessa vez utilizei o console.table. Aparece o seguinte:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olá Lucas, tudo bem?

Desde já peço desculpa pela demora para responder o seu tópico.

Fico feliz que tenha conseguido encontrar a solução para o seu problema inicial e que tenha compartilhado aqui no fórum. Agora com relação ao seu segundo ponto, temo que eu não consigo identificar esse problema sem que eu esteja com todos os arquivos do seu projeto, pois imagino que você tenha feito algumas modificações após a postagem do tópico.

Com isso, peço que compartilhe comigo todo o seu projeto, via Github ou Drive do Google, assim conseguirei construir uma resposta mais assertiva para o seu problema.

Fico no aguardo e à disposição