2
respostas

meu console apresenta erro na Let menor valor, na atividade selecte sort, Boa noite, me ajudem por favor.

Boa noite, me ajudem por favor.

const livros = [ {titulo: "js", preco:25, },

{titulo: "PHp", preco:15, },

{titulo: "java", preco:30, },

{titulo: "elixir" , preco:50, },

{titulo: "go", preco:45, },

{titulo: "P", preco:20, } ];

module.exports = livros;

//Selection Sort

const livros = require('./livros');

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;

const livros = require('./livros');

const menorValor = require('./menorValor');

for (let atual= 0; atual < livros.length; atual++){ let menor = menorValor(livros, atual)

 let livroAtual= livros[atual];
console.log('posição atual', atual)
console.log('livro menor preço', livros[atual])
let livroMenorPreco = livros[menor];
console.log('livro menor preço', livros[menor])

livros[atual] = livroMenorPreco
livros[menor] = livroAtual 

} console.log(livros)

2 respostas

Boa tarde; seu código não tem uma variável instanciada com let menorValor. Tem uma const menorValor. Qual a linha está dando erro. Coloca o erro aqui pra gente ver.. Abração

Bom dia, Kelvin!

Rodei seu código aqui e notei que o erro está na variável "maisbarato" dentro do primeiro "for" da função "menorValor", sendo que, antes desse "for", ela tinha sido declarada com "B*" *maiúsculo. Quando eu modifiquei, seu código funcionou direito.

Mais uma coisa: apesar de não ser um erro, ou eu acho que não seja, essas vírgulas que vêm após os elementos da segunda categoria (preco) dentro da lista de objetos "livros" são inúteis. Ou, ao menos, desnecessárias, já que não há uma terceira categoria/característica que justifique uma vírgula ali.

Quando rodei o código, deixei as vírgulas pra ver se daria um outro erro, mas não foi o caso.