Olá, como vai?
O problema do seu código está no retorno da função ordena. Primeiro, o seu retorno está dentro do escopo do while
então é necessário copiar toda a sua estrutura e colar fora do while
, e por fim, na primeira comparação você escreveu a propriedade length
errada, você escreveu como lenght
.
Abaixo segue a função ordena
corrgida:
function ordena(parte1, parte2) {
let posicaoAtualP1 = 0;
let posicaoAtualP2 = 0;
const result = [];
while(posicaoAtualP1 < parte1.length && posicaoAtualP2 < parte2.length){
let produtoAtualP1 = parte1[posicaoAtualP1];
let produtoAtualP2 = parte2[posicaoAtualP2];
if(produtoAtualP1.preco < produtoAtualP2.preco){
result.push(produtoAtualP1);
posicaoAtualP1++;
} else {
result.push(produtoAtualP2);
posicaoAtualP2++;
}
}
return result.concat(posicaoAtualP1 < parte1.length
? parte1.slice(posicaoAtualP1) : parte2.slice(posicaoAtualP2))
}
Espero ter ajudado e caso tenha mais problemas ou dúvidas estarei à disposição!
Grande abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.