1
resposta

[Sugestão] Uma verificação booleana para contornar o problema de "undefined"

Já que existe um problema de existir atributos "undefined" em um array caso o laço de repetição while continue por mais tempo do que o tamanho no menor array, eu realizei uma verificação booleana para contornar esse problema.

const { edGalho, edFolha } = require('./arrays');

function juntaListas(lista1, lista2) {
  let listaFinal = [];
  let posicaoAtualLista1 = 0;
  let posicaoAtualLista2 = 0;
  let atual = 0;

  while (listaFinal.length < edFolha.length + edGalho.length) {
    let produtoAtualLista1 = lista1[posicaoAtualLista1];
    let produtoAtualLista2 = lista2[posicaoAtualLista2];

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

    atual++;
  }

  return listaFinal;
}

console.log(juntaListas(edGalho, edFolha))
1 resposta

Olá, Thiago, tudo bem?

Fico feliz que tenho tomado essa iniciativa de tentar resolver um problema! E, além disso, agradeço por compartilhar a sua solução aqui no fórum, tenho certeza que poderá ajudar alunos que tentarem resolver ou tiverem esse tipo de problema.

Caso durante os seus estudos você tenha dúvidas ou problemas, você pode recorrer ao fórum! Contamos com uma grande comunidade que pode lhe ajudar.

Grande abraço e bons estudos!