Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

No console esta falando que o modulo não foi encontrado.

No console mostra 'MODULE_NOT_FOUND' sendo que eu declarei o modulo nos arquivos exportados veja: arquivo 1:

const idades = [
    {
        nome:"Matheus",
        idade:15,
    },
    {
        nome:"Vitor",
        idade:20,
    },
    {
        nome:"Vitoria",
        idade:16,
    },
    {
        nome:"Vinicius",
        idade:11,
    }
]

module.exports = idades

function pessoaMaisNova (indice,valorInicial){
    let maisNovo = valorInicial;

    for(let atual = 0; atual < idades.length; atual++){
        if(indice[atual].idade < indice[maisNovo].idade){
            maisNovo = atual;
        }
    }
    return maisNovo;
}

module.exports = pessoaMaisNova;

arquivo2:

const pessoas = require('./idades');
const pessoaMaisNova = require('./pessoaMaisNova')

for(let atual =0; atual < pessoas.length; atual++){
    menor = pessoaMaisNova(pessoas,atual)
    let pessoaAtual = pessoas[atual];
    let pessoaMenor = pessoas[menor]

    pessoas[atual] = pessoaMenor;
    pessoas[menor] = pessoaAtual;
}

console.log(pessoas)

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

2 respostas
solução!

Olá! Tudo bem? O que está acontecendo é um erro de importação e exportação. Na hora de exportar uma função ou uma constante, nós usamos o module.exports, que é atribuído como se fosse uma variável, então é importante fazer essa atribuição somente uma vez por arquivo, porque se não a exportação vai acabar sendo sobrescrita. E na hora de importar nós definimos o que deve ser importado na esquerda, e na direita de qual arquivo vamos importar. No caso do seu projeto nós temos duas opções:

// Arquivo 1, que vou chamar de arquivo1.js nesse exemplo
const pessoas = [
    {
        nome:"Matheus",
        idade:15,
    },
    {
        nome:"Vitor",
        idade:20,
    },
    {
        nome:"Vitoria",
        idade:16,
    },
    {
        nome:"Vinicius",
        idade:11,
    }
]

function pessoaMaisNova (indice,valorInicial){
    let maisNovo = valorInicial;

    for(let atual = 0; atual < pessoas.length; atual++){
        if(indice[atual].idade < indice[maisNovo].idade){
            maisNovo = atual;
        }
    }
    return maisNovo;
}

// Desse jeito estamos exportando a constante pessoas e a função pessoaMaisNova ao mesmo tempo:
module.exports = {pessoas, pessoaMaisNova};
// Arquivo atual.js
// aquilo que vamos importar = arquivo da onde vamos importar
const {pessoas, pessoaMaisNova} = require('./arquivo1');

// Resto do código

Desse jeito estamos fazendo a exportação de tudo no arquivo1.js e importando tudo de uma vez no atual.js.


Outra possibilidade seria separar o arquivo1.js em dois, para exportar uma coisa de cada vez:

// Arquivo pessoas.js
const pessoas = [
    {
        nome:"Matheus",
        idade:15,
    },
    {
        nome:"Vitor",
        idade:20,
    },
    {
        nome:"Vitoria",
        idade:16,
    },
    {
        nome:"Vinicius",
        idade:11,
    }
]

module.exports = pessoas;
// Arquivo pessoaMaisNova.js

// Fazendo a importação da constante do outro arquivo
const pessoas = require('./pessoas');

function pessoaMaisNova (indice,valorInicial){
    let maisNovo = valorInicial;

    for(let atual = 0; atual < pessoas.length; atual++){
        if(indice[atual].idade < indice[maisNovo].idade){
            maisNovo = atual;
        }
    }
    return maisNovo;
}

module.exports = pessoaMaisNova;
// Importando no arquivo atual.js

const pessoas = require('./pessoas');
const pessoaMaisNova = require('./pessoaMaisNova');

// Resto do código

Desse outro jeito o código acaba ficando mais organizado e separado. É importante sempre lembrar de usar o module.exports somente uma vez por arquivo e sempre prestar atenção no caminho do arquivo que você está importando na hora de usar o require. Espero ter ajudado!

funcionou!! porém no console a ordem esta inversa , invés de ser menor pro maior , o valor esta indo do maior para o menor. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software