6
respostas

função require deu errro, peço ajuda

gostaria de pedir ajuda,a opção require está dando erro

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

function    juntalistas(lista1,lista2){
    let listaFinal= [];
   let posicaoAtualLista1= 0;
   let posicaoAtualLista2= 0;
   let atual= 0;
    while(posicaoAtualLista1 < lista.length && posicaoAtualLista2< lista2.length){
        let produtoAtualizadoLista1 = lista1[posicaoAtualLista1];
        let produtoAtualizadoLista2 = lista2[posicaoAtualLista2];
        if(produtoAtualizadoLista1.preco< produtoAtualizadoLista2. preco){
            listaFinal[atual]= produtoAtualizadoLista1; posicaoAtualLista1++;
        }else{

            listaFinal[atual]= produtoAtualizadoLista2; posicaoAtualLista2++;

        }

        atual++;
    }

    return  listaFinal;


}
console.log(juntalistas[edGalho], [edFolha]);
6 respostas

Oi, Kelvin, tudo bem?

Qual erro está dando? Acho que talvez não seja no require, pois encontrei alguns erros durante a leitura do seu código.

Aqui está o código corrigido:

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

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

  while (posicaoAtualLista1 < lista1.length && posicaoAtualLista2 < lista2.length) {
    let produtoAtualLista1 = lista1[posicaoAtualLista1];
    let produtoAtualLista2 = lista2[posicaoAtualLista2];

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

    atual++;
  }

  while (posicaoAtualLista1 < lista1.length) {
    listaFinal[atual] = lista1[posicaoAtualLista1];
    posicaoAtualLista1++;
    atual++;
  }

  while (posicaoAtualLista2 < lista2.length) {
    listaFinal[atual] = lista2[posicaoAtualLista2];
    posicaoAtualLista2++;
    atual++;
  }

  return listaFinal;
}

console.log(juntaListas(edGalho, edFolha))

Fico no aguardo.

Abraços e bons estudos!

o modelo que vc me passou funcionou, porém a professora não usou o while tres vezes foi uma só

fiz de duas maneiras, uma com mais whiles, outra com menos

function juntaListas(lista1, lista2) {
    let lista_principal = [];
    let posicaoAtualLista_1 = 0;
    let posicaoAtualLista_2 = 0;
    let tamanho_lista1 = lista1.length;
    let tamanho_lista2 = lista2.length;
    while(posicaoAtualLista_1 < tamanho_lista1 || posicaoAtualLista_2 < tamanho_lista2){
        let item_lista1 = lista1[posicaoAtualLista_1]
        let item_lista2 = lista2[posicaoAtualLista_2]
        if (posicaoAtualLista_1 < tamanho_lista1 && posicaoAtualLista_2 < tamanho_lista2 && item_lista1.preco < item_lista2.preco){
            lista_principal.push(item_lista1)
            posicaoAtualLista_1++
        } else if(posicaoAtualLista_2 < tamanho_lista2 && posicaoAtualLista_1 < tamanho_lista1 && item_lista1.preco > item_lista2.preco){
            lista_principal.push(item_lista2)
            posicaoAtualLista_2++
        }
        if (posicaoAtualLista_2 < tamanho_lista2 && posicaoAtualLista_1 === tamanho_lista1){
            lista_principal.push(item_lista2)
            posicaoAtualLista_2++
        } else if(posicaoAtualLista_1 < tamanho_lista1 && posicaoAtualLista_2 === tamanho_lista2){
            lista_principal.push(item_lista1)
            posicaoAtualLista_1++
        }

    }

    return lista_principal;
}
function juntaListas(lista1, lista2) {
    let lista_principal = [];
    let posicaoAtualLista_1 = 0;
    let posicaoAtualLista_2 = 0;
    let tamanho_lista1 = lista1.length;
    let tamanho_lista2 = lista2.length;
    while(posicaoAtualLista_1 < tamanho_lista1 && posicaoAtualLista_2 < tamanho_lista2){
        let item_lista1 = lista1[posicaoAtualLista_1]
        let item_lista2 = lista2[posicaoAtualLista_2]
        if (item_lista1.preco < item_lista2.preco){
            lista_principal.push(item_lista1)
            posicaoAtualLista_1++
        }else{
            lista_principal.push(item_lista2)
            posicaoAtualLista_2++
        }
    }
    let item_lista1 = lista1[posicaoAtualLista_1]
    let item_lista2 = lista2[posicaoAtualLista_2]
    while (posicaoAtualLista_1 < tamanho_lista1){
        lista_principal.push(item_lista1)
        posicaoAtualLista_1++
    }
    while (posicaoAtualLista_2 < tamanho_lista2){
        lista_principal.push(item_lista2)
        posicaoAtualLista_2++
    }

    return lista_principal;
}

Qual foi o erro que cometi

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

function    juntalistas(lista1,lista2){
    let listaFinal= [];
   let posicaoAtualLista1= 0;
   let posicaoAtualLista2= 0;
   let atual= 0;
    while(posicaoAtualLista1 < LISTA1.length && posicaoAtualLista2< lista2.length){
        let produtoAtualizadoLista1 = lista1[posicaoAtualLista1];
        let produtoAtualizadoLista2 = lista2[posicaoAtualLista2];
        if(produtoAtualizadoLista1.preco< produtoAtualizadoLista2. preco){
            listaFinal[atual]= produtoAtualizadoLista1; posicaoAtualLista1++;
        }else{

            listaFinal[atual]= produtoAtualizadoLista2; posicaoAtualLista2++;

        }

        atual++;
    }
    if(posicaoAtualLista1 < lista1.lengh){listaFinal.concat(lista1.slice(posicaoAtualLista1))}
    if(posicaoAtualLista2 < lista2.lengh){listaFinal.concat(lista2.slice(posicaoAtualLista2))}
    return  listaFinal;


}
console.log(juntalistas[edGalho], [edFolha]);

Da uma olhada no codigo que implementei no seu, e olha o seu lengh em letra maiuscula que deixei em lista<< Ali daria erro no código e no final existem varios outros tipos para implementar os elementos faltantes, caso haja.

pelo que vi vc errou na lista do while "lista.length" nao existe,teria que ser "lista1.length"