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

deu certo em partes

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: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Oi Matheus!

O código está correto, só lembrando do que falamos no começo dessa aula, que este algoritmo vai juntar duas listas já ordenadas :) Ou seja, cada um dos arrays já deve ter sido ordenado anteriormente antes de juntarmos.

Espero ter ajudado!

Bons estudos ;)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software