3
respostas

[Bug] Meu código está dando erro!!!

Olá! Procurei reescrever o algoritmo de ordenação SelectionSort utilizando o método forEach(). Na minha cabeça está tudo certo, mas está dando um erro que não não consegui resolver. Meu código:

const livros = require('./lista_livros.js')
const menorValor = require('./menor_preco.js')

livros.forEach((_, indice) => {
  let menor = menorValor(livros, indice)

  let livroindice = livros[indice]
  let livroMenorPreco = livros[menor]

  livros[indice] = livroMenorPreco
  livros[menor] = livroindice
})

console.log(livros)

Erro:

PS C:\Users\rafae\Documents\Alura\Algoritmos_ordenação_JS> node selectionSort_for_each.js
node:internal/modules/cjs/loader:998
  throw err;
  ^

Error: Cannot find module 'C:\Users\rafae\Documents\Alura\Algoritmos_ordenação_JS\selectionSort_for_each.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:995:15)
    at Module._load (node:internal/modules/cjs/loader:841:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v18.12.1

O que estou fazendo de errado? Obrigado!

3 respostas

Olá Rafael, tudo bem?

Testei o seu código e não me foi retornado nenhum erro, isso me leva a pensar que o motivo desse erro está aparecendo deve ser por conta de algum problema presente nos módulos que você importou.

Tendo isso em vista, gostaria que você compartilhasse todos os códigos que estão nos outros arquivos necessários para rodar esse algoritmo, pois assim, poderei entender melhor o que está causando esse erro, logo lhe darei uma resposta mais assertiva.

Fico no aguardo e à disposição

Olá Armano, obrigado pelo retorno!

Segue abaixo o código dos dois módulos que estou importando para esse algoritmo.

lista_livros.js

const precosLivros = [
  {
    titulo: 'JavaScript',
    preco: 25
  },
  {
    titulo: 'PHP',
    preco: 15
  },
  {
    titulo: 'JAVA',
    preco: 30
  },
  {
    titulo: 'Elixir',
    preco: 50
  },
  {
    titulo: 'GO',
    preco: 45
  },
  {
    titulo: 'Python',
    preco: 20
  }
]

module.exports = precosLivros

menor_preco.js

const livros = require('./lista_livros.js')

function menorValor(arrProdutos, posicaoInicial) {
  let maisBarato = posicaoInicial

  for (let atual = posicaoInicial; atual < arrProdutos.length; atual++) {
    if (arrProdutos[atual].preco < arrProdutos[maisBarato].preco) {
      maisBarato = atual
    }
  }
  return maisBarato
}

module.exports = menorValor

Dá uma olhada no que pode estar acontecendo. Obrigado desde já!

Opa Rafael, obrigado por pela resposta rápida!

Agrupei todos os códigos que você compartilhou e realizei um teste inicial e não obtive nenhum erro, o que me fez realizar outros testes para entender como o erro que você enviou poderia acontecer. Então, quando eu executei, no terminal, o arquivo com o nome errado, me foi retornado um erro com as mesmas características que o seu.

Com isso, como solução, peço que verifique se está executando o arquivo com o nome correto. Caso esteja, veja se ele realmente está dentro da pasta "Algoritmos_ordenação_JS", pois é nela que o interpretador está procurando o arquivo para executar.

Se depois dos pontos que comentei ainda esteja dando o mesmo erro, estarei à disposição para ajudá-lo novamente.

Abraços e bons estudos!