Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não esta organizando o array

const listaLivros = require('./array');

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(lista1, lista2) { let posicaoAtualPare1=0; let posicaoAtualPare2=0; const resultado= [];

while(posicaoAtualPare1 < lista1.length && posicaoAtualPare2 < lista2.length){
    let produtoAtualparte1= lista1[posicaoAtualPare1];
    let produtoAtualparte2= lista2[posicaoAtualPare2];

    if (produtoAtualparte1.preco< produtoAtualparte2) {
        resultado.push(produtoAtualparte1)
        posicaoAtualPare1++
    }else{
        resultado.push(produtoAtualparte2)
        posicaoAtualPare2++
    }
}

return resultado.concat(posicaoAtualPare1< lista1.length 
    ? lista1.slice(posicaoAtualPare1) 
    : lista2.slice(posicaoAtualPare2))

}

console.log(mergeSort(listaLivros));

1 resposta
solução!

No if dentro de ordena() faltou o .preco de produtoAtualParte2. Corrigido fica assim:

if (produtoAtualparte1.preco < produtoAtualparte2.preco) {