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

Código sem Ordenação

Olá!Poderiam me ajudar?

Meu código não está exibindo a lista dos livros ordenado(Do menor preço para o maior).Já revirei todos os arquivos,assisti as aulas umas três vezes porem nao consegui identificar o erro.Segue abaixo os códigos.

//Arquivo "menorValor"

const livros = require('./listaLivros')


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;

//arquivo "listaLivros"

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;

arquivo "selectionSort"

const livros = require('./listaLivros');
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 atual",livros[atual])
let livroMenorPreco = livros[menor]
console.log("livro menor preço",livros[menor])

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

}
console.log(livros) 




Obrigado!

2 respostas

Olá, o retorno em menorValor ta no local errado, basta colocar o retorno fora do for que vai dar certo:

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

Obrigado Rodolpho!