1
resposta

[Dúvida] Algoritmo de ordenação

Fiquei na dúvida sobre essa ordenação, como só quero o menor preço entre os livros da lista, esse código não seria considerado um filtro ao invés de uma ordenação, já que estou pegando apenas o menor valor?

Desde já, agradeço a resposta :)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi, Linda! Tudo bem?

Inicialmente, é válido pontuar que para que o código enviado na imagem consiga operar como esperamos, devemos fazer algumas pequenas alterações, deixando-o da seguinte maneira:

const precosLivro = [25, 15, 30, 50, 45, 20];

let menorValor = 0;

function buscaMenorValor (listaLivros) {
    for (let posicaoAtual = 0; posicaoAtual < precosLivro.length; posicaoAtual++) {
        if (listaLivros [posicaoAtual] < listaLivros [menorValor ]) {
            menorValor = posicaoAtual;
        }
    }
}
buscaMenorValor (precosLivro);

console.log (`O menor valor encontrado é R$ $(precosLivro[menorValor].`);

Após isso, podemos observar que no trecho de código abordado na aula ainda não possuímos por completo o nosso algoritmo de ordenação, logo, esse pequeno trecho de código não se caracteriza como um. Entretanto, também não possuímos um filtro, nele apenas estamos buscando o menor valor dentro de uma lista.

A função buscaMenorValor percorre a lista de preços de livros e compara cada elemento com o valor armazenado no índice de menorValor. Se o elemento atual for menor que o armazenado no índice de menorValor, o valor é atualizado. No final, o índice de menorValor conterá o menor preço encontrado na lista.

Portanto, o código não está ordenando a lista de preços nem filtrando-a com base em um critério específico. Ele está apenas buscando o menor valor e armazenando-o na variável precosLivro[menorValor].

Para filtrarmos a lista visando obter apenas o menor preço, podemos usar o método Math.min combinado com o spread operator (...) para passar todos os elementos da lista como argumentos, deixando-a de acordo com o exemplo:

const precosLivro = [25, 15, 30, 50, 45, 20];
const menorValor = Math.min(...precosLivro);
console.log(`O menor valor encontrado é R$ ${menorValor}.`);

Dessa forma, obteremos diretamente o menor valor da lista sem precisar percorrer manualmente os elementos.

Espero ter ajudado na compreensão do problema. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓