o código deu certo , porém a ordem no final ficou meio errada , porque nos while não esta comparando o valor dos preços veja: Arquivo 1:
const prod1 =
[
{
titulo:"Casa Monstro",
preco:15,
},
{
titulo:"Harry Potter",
preco:50,
},
{
titulo:"H.P.LoveCraft: mitos e lendas",
preco:30,
},
{
titulo:"A casa da arvore de 30 andares",
preco: 20
},
]
const prod2 =
[
{
titulo:"O magico de Oz",
preco: 18,
},
{
titulo:"RezendeEvil vs Herobrine 2",
preco: 27,
},
{
titulo:"Um zumbi a rodo",
preco:47,
},
]
module.exports = {prod1,prod2};
Arquivo 2:
const {prod1,prod2} = require('./listaProdutos');
function juntaLista (lista1,lista2){
let final = [];
let posicaoLista1 = 0;
let posicaoLista2 = 0;
let atual = 0;
while( posicaoLista1 < lista1.length && posicaoLista2 < lista2.length){
let produtoLista1 = lista1[posicaoLista1];
let produtoLista2 = lista2[posicaoLista2];
if ( produtoLista1.preco < produtoLista2.preco){
final[atual] = produtoLista1;
posicaoLista1++
}else{
final[atual] = produtoLista2;
posicaoLista2++
}
atual++
}
while(posicaoLista1 < lista1.length){
final[atual] = lista1[posicaoLista1];
posicaoLista1++
atual++
}
while(posicaoLista2 < lista2){
final[atual] = lista2[posicaoLista2];
posicaoLista2++
atual++
}
return final;
}
console.log(juntaLista(prod1,prod2));
resultado: