Boa tarde, tudo certo com vocês?
Não consegui compreender como que o código "analise--;" consegue sair do loop do while... E deixei esse trecho comentado para testar e funcionou igualmente.
Se a minha var analise tem valor de 0 no while e eu desconto com --, ficaria com -1 em qual escopo? do for onde declarei let analise ou o valor fica guardado dentro do while na variável analise?
listaLivros.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;
insertionSort.js
const livros = require("./listaLivros");
function insertionSort(lista) {
for (let atual = 0; atual < lista.length; atual++) {
let analise = atual;
while (
analise > 0 &&
lista[analise].preco < lista[analise - 1].preco
) {
let itemAnalise = lista[analise];
let itemAnterior = lista[analise - 1];
lista[analise] = itemAnterior;
lista[analise - 1] = itemAnalise;
//analise--;
}
}
console.log(arrProdutos);
}
insertionSort(livros);
Funciona perfeitamente sem o trecho analise--;