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--;
 
            