A princípio, assisti a aula toda e depois construi meu código. Até criei uma lista mais extensa de livros. Mas na hora de executar, reparei que não estava ordenando. Por fim revisitei os videos e fui construindo conforme a instrutora. Ainda sim meu código não está se ordenando e não consigo encontrar o motivo.
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;
menorValor.js
const livros = require('./livros');
function menorValor(livros, posicaoInicial) {
let maisBarato = posicaoInicial;
for (let atual = 0; atual < livros.length; atual++){
if (livros[atual].preco < livros[maisBarato].preco){
maisBarato = atual;
}
}
return maisBarato;
}
module.exports = menorValor
selectionSort.js
const livros = require('./livros.js');
const menorValor = require('./menorValor.js');
for (let atual = 0; atual < livros.length; atual++) {
let menor = menorValor(livros, atual);
let livroAtual = livros[atual];
console.log("A posição atual é ",atual);
let livroMenor = livros[menor];
console.log("O livro atual é ",livroAtual);
console.log("O livro menor é ",livroMenor);
livros[atual] = livroMenor;
livros[menor] = livroAtual;
}
Com esses códigos, ao executar o "node selectionSort.js" aparece assim
Terminal
A posição atual é 0
O livro atual é { titulo: 'JavaScript', preco: 25 }
O livro menor é { titulo: 'PHP', preco: 15 }
A posição atual é 1
O livro atual é { titulo: 'JavaScript', preco: 25 }
O livro menor é { titulo: 'PHP', preco: 15 }
A posição atual é 2
O livro atual é { titulo: 'Java', preco: 30 }
O livro menor é { titulo: 'PHP', preco: 15 }
A posição atual é 3
O livro atual é { titulo: 'Elixir', preco: 50 }
O livro menor é { titulo: 'PHP', preco: 15 }
A posição atual é 4
O livro atual é { titulo: 'Go', preco: 45 }
O livro menor é { titulo: 'PHP', preco: 15 }
A posição atual é 5
O livro atual é { titulo: 'Python', preco: 20 }
O livro menor é { titulo: 'PHP', preco: 15 }
Alguém pode me ajudar a encontrar o erro?