12
respostas

alguém pode me dizer porque o código não funcionou?

const edFolha = [
    {
        nome:"PHP",
        preco: 56
    },
    {
        nome: "JavaScript",
        preco: 27
    },
    {
        nome: "Java",
        preco: 89
    },
    {
        nome: "Go",
        preco: 47
    },
    {
        nome: "Elixir",
        preco: 46
    }
]

const edGalho = [
    {
        nome: "Python",
        preco: 34
    },
    {
        nome:"Rust",
        preco: 22
    },
    {
        nome: "Ruby",
        preco: 26
    },
    {
        nome: "C#",
        preco: 375
    },
    {
        nome: "C++",
        preco: 387
    },
    {
        nome: "Scala",
        preco: 42
    }
]

module.exports = { edFolha, edGalho }
const ListaDeLivros = require ("./listalivros")

function mergeSort(array){
     if(array.length > 1){
        const meio = Math.floor(array.length/2);

        const parte1 = mergeSort(array.slice(0, meio))
        const parte2 = mergeSort(array.slice(meio, array.length));

        array = ordena(parte1, parte2)
     }   return array;
}

function ordena(parte1, parte2){
    let posiçãoatualparte1 = 0
    let posiçãoatualparte2 = 0

    const resultado = []

    while(posiçãoatualparte1 < parte1.length && posiçãoatualparte2 < parte2.length){
        let produtoatualparte1 = parte1[posiçãoatualparte1]
        let produtoatualparte2 = parte2[posiçãoatualparte2]

        if(produtoatualparte1.preco < produtoatualparte2.preco){
            resultado.push(produtoatualparte1)
            posiçãoatualparte1++;
        }else{
            resultado.push(produtoatualparte2)
            posiçãoatualparte2++;
        }
    }
    return resultado.concat(posiçãoatualparte1 < parte1.length ? parte1.slice(posiçãoatualparte1) : parte2.slice(posiçãoatualparte2))
}

const galho = ListaDeLivros.edGalho

const folha = ListaDeLivros.edFolha

console.log(mergeSort(ListaDeLivros.edFolha))
console.log(mergeSort(ListaDeLivros.edGalho))




function junta(lista1, lista2){
    let listafinal = [];
    let posiçãoAtualLista1 = 0;
    let posiçãoAtualLista2 = 0;
    let atual = 0;

    while (posiçãoAtualLista1 < lista1.length && posiçãoAtualLista2 < lista2.length){
        let produtoAtualLista1 = lista1[posiçãoAtualLista1];
        let produtoAtualLista2 = lista2[posiçãoAtualLista2];

        if(produtoAtualLista1.preco < produtoAtualLista2.preco){
            listafinal[atual] = produtoAtualLista1;
            posiçãoAtualLista1++
        }else{
            listafinal[atual] = produtoAtualLista2;
            posiçãoAtualLista2++
        } atual++
    }
    while (posiçãoAtualLista1 < lista1.length){
        listafinal[atual] = lista1[posiçãoAtualLista1];
        posiçãoAtualLista1++;
        atual++
    }
    while (posiçãoAtualLista2 < lista2.length){
        listafinal[atual] = lista1[posiçãoAtualLista2];
        posiçãoAtualLista2++;
        atual++;
    }

    return listafinal
}

console.log(junta(galho, folha))
12 respostas

Se você esta com o node atualizado o modo de exportar é diferente, troque aonde tem "modulo"para o export.

export const edFolha = [
    {
        nome:"PHP",
        preco: 56
    },
    ...
]

export const edGalho = [
    {
      nome: "Python",
      preco: 34
    },
    ...
]

E para importa troque o "require " por "import"

import {edFolha, edGalho} from "./listalivros.js"

olá, poderia me dizer como ficaria o código todo? no meu console não está funcionando

Código resumido.

export const edFolha = [
    {
        nome:"PHP",
        preco: 56
    },
    ...  
]

export const edGalho = [
    {
        nome: "Python",
        preco: 34
    },
    ...
]
import {edFolha, edGalho} from "./listalivros.js"

function mergeSort(array){
...
}
function ordena(parte1, parte2){
...
}
function junta(lista1, lista2){
...
}
console.log(mergeSort(edFolha))
console.log(mergeSort(edGalho))
console.log(junta(edGalho, edFolha))

console:

Cannot use import statement outside a module*

Vai ate o seu package.json e verifique se tem este comando aq:

{
  // ...
  "type": "module",
  // ...
}

Só por precaução, instale novamente o node.js pra garantir que ele esta atualizado, depois repita o processo de configuração.

sou iniciante e não faço ideia doq seja isso, mas vou tentar reinstalar o node. Isso afeta o terminal do Visual Studio Code? ou só o terminal do próprio node?

Explicação resumida ( acredito eu que se vc procurar pela formação de javaScrip para backend aqui na alura tera uma explicação mais aprofundada) Node eh apenas um interpretador do javaScript, então quando vc executa no terminal o npm se vc n indicar nennhum nome de arquivo ele procura na pasta um arquivo chamado package.json e la fica a configuração de como ele vai traduzir o codigo Js. acredito então q vc so tem que atualizar o node, se n de certo, acredito eu que no inicio do curso tem uma seção que eh apenas pra configurar o ambiente.

ok, muito obrigado, mas fora isso será que não tem nada de errado com o código?

Acabei de copiar e colar com as modificações que eu te passei e o não deu nenhum erro, acredito que se não for o node desatualizado, talvez vc colocou nome de alguma variavel errada ou tem algum dos consoles logs ou importação errada ou nome do arquivo não eh o mesmo que importado, ate acho que pode ser que os 2 arquivos que vc criou não estão dentro da mesma pasta. se puder tire um print para eu ver como esta as pastas criadas pelo Visual studio.

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

não acho que seja problema de exportação porque não dá erro, o código só não organiza do jeito que deveria

pelo q eu to vendo no terminal, seu node eh da versão 8.1, instala o node js 16, se realmente eh algum problema na organização do código então deve ser o node msm, pois ele qm interpreta o JavaScrip.