1
resposta

dando erro no código 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) //não entendi linha 9 a funcionalidade

    }
    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 = parte1[posicaoAtualParte2]

        if(produtoAtualParte1.preco < produtoAtualParte2.preco){
            resultado.push(produtoAtualParte1)
            posicaoAtualParte1 ++

        }else{
            resultado.push(produtoAtualParte2)
            posicaoAtualParte2 ++

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

console.log(mergeSort(produtosLivros))

olá galera, tentei fazer o mergeSort da aula sozinho, mas quando coloco pra executar aparece um erro. Error: /home/luciano/estudos de JavaScript/testes/node_b709296528d01.tmp:23 if(produtoAtualParte1.preco < produtoAtualParte2.preco){ ^

TypeError: Cannot read property 'preco' of undefined

comparei com o da aula e não vejo o erro!

1 resposta

faltou definir produtosLivros