As listas não estão comparando os valores entre elas, somente entre seus proprios itens e o ultimo item da lista não esta sendo colocado na lista final. arrays.js
const edFolha =[
{
titulo:"PHP",
preco:15
},
{
titulo:"JavaScript",
preco:25
},
{
titulo:"Java",
preco:30
},
{
titulo:"Go",
preco:45
},
{
titulo:"Elixir",
preco:50
}
]
const edGalho = [
{
titulo: "Python",
valor: 20
},
{
titulo: "Rust",
valor: 22
},
{
titulo: "Ruby",
preco: 28
},
{
titulo: "C#",
preco: 33
},
{
titulo: "C++",
preco: 35
}
]
module.exports = {edFolha, edGalho}
index.js
const { edGalho, edFolha } = require('./arrays');
function juntaListas(lista1, lista2){
let listaFinal = [];
let posList1 = 0;
let posList2 = 0;
let atual = 0;
while (posList1 < lista1.length && posList2 < lista2.length){
let ProdList1 = lista1[posList1];
let ProdList2 = lista2[posList2];
console.log(`comparando ${ProdList1.titulo} com ${ProdList2.titulo}`)
if (ProdList1.preco < ProdList2.preco){
listaFinal[atual] = ProdList1;
posList1++;
} else{
listaFinal[atual] = ProdList2;
posList2++;
}
atual++;
}
while (posList1 < lista1.length){
listaFinal[atual] = lista1[posList1];
posList1++;
atual++
}
while (posList2 < lista2.length){
listaFinal[atual] = lista2[posList2];
posList2++;
atual++
}
return listaFinal;
}
console.log(juntaListas(edGalho, edFolha))
terminal