[12:45] Daria para começar com let atual = 1 e não precisaríamos da primeira condição de analise > 0 &&, porque começaríamos já da primeira posição do array comparando com a posição anterior. Se quiser, também dá para fazer dessa forma.
Acho que mesmo iniciando com atual = 1
, a condição analise > 0
deve permanecer, pois dentro do while analise
será decrementada e eventualmente pode receber valor 0
, dando no mesmo problema do indice -1
( lista[-1].preco )
Na prática isso vai ocorrer quando um item for o menor valor da lista daquele momento, a variável analise
será decrementada até 0
e a comparação com lista[analise-1]
vai acontecer, acarretando no erro.