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

Tentei mas deu errado :(

Meu console.log de dentro da função não está aparecendo no terminal. Aparece apenas a lista de livros desordenado.

No arquivo selectonSort.js tenho o seguinte código:

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

for (let atual = 0; atual < livros.lenght; 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)

No arquivo menorValor.js tenho o seguinte código:

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;

No arquivo listaLivros.js tenho o seguinte código:

const precosLivros = [
    {
        titulo: "JavaSript",
        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;
2 respostas
solução!

Olá. É o lenght digitado errado na linha do for. Por isso não tá nem entrando no for. Corrige pra livros.length que vai dá certo.

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

Olá, Rodolpho!

Muuuuito obrigadaaaaa. Meu Deeeeeeus! Li isso dez mil vezes, suspeitei que o problema fosse esse mas não consegui enxergar as letras trocadas.

Abraço!