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!!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!!
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!