1
resposta

[Dúvida] Saida inesperada.

Inves da saida do array listado, esses indices estão sendo a saida no console, por mais que eu leia o codigo varias vezes não consigo entender onde errei. Help!!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi, Robson! Tudo bem?

O problema está ocorrendo pois no if e else da função está sendo atribuído de listaFinal[atual] à posicaoAtualLista1 e posicaoAtualLista2 ao invés de à produtoAtualLista1 e produtoAtualLista2. Dessa forma, estamos atribuindo o índice (posicaoAtualLista1) em vez do produto (produtoAtualLista1) da lista 1 à lista final, por exemplo, o que significa que a lista final conterá índices em vez dos objetos reais.

Devido a isso, para contornarmos o problema basta fazermos essa alteração, deixando esse trecho de código da seguinte maneira:

    if (produtoAtualLista1.preco < produtoAtualLista2.preco) {
      listaFinal[atual] = produtoAtualLista1;
      posicaoAtualLista1++;
    } else {
      listaFinal[atual] = produtoAtualLista2;
      posicaoAtualLista2++;
    }

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓