1
resposta

[Dúvida] Não entendi a resolução do desafio 4

Os desafios são avançados para iniciantes. Consegui entender como funciona a solução dos 3 primeiros, mas o 4º desafio tá bem difícil.

Poderiam explicar passo a passo como chegar nesta solução? Como é utilizado o atributo .sort?

1 resposta

Olá, Jefferson! Tudo certo?

O desafio pede para criar um programa com uma função que receba três números como argumentos e os retorne em ordem crescente. É utilizado o atributo .sort(), que é uma função em JavaScript que ordena os elementos de um array.

Veja a solução desse desafio:

function ordenarNumeros(a, b, c) {
    const numerosOrdenados = [a, b, c].sort((x, y) => x - y);
    console.log(`Números ordenados: ${numerosOrdenados.join(', ')}`);
}

// Exemplo de uso:
ordenarNumeros(3, 1, 5);

// Deve exibir "Números ordenados: 1, 3, 5"

Nesse caso, o método .sort() recebe uma função de comparação ("(x, y) => x - y"). Essa função é o mesmo que o seguinte:

function(x, y){
    return x - n
}

O método .sort() faz a comparação dos números baseando-se no resultado da função que é passada como parâmetro dentro dos parênteses (".sort((x, y) => x - y)"). Existem três possibilidades para esse retorno. Ele pode ser:

  • Negativo: o método classifica o primeiro valor como menor que o segundo;

  • Zero: os valores são classificados como iguais;

  • Positivo: o primeiro valor é classificado como maior que o segundo.

Tendo isso, imagine uma comparação entre os valores 3 e 5. O método analisará a operação 3 - 5, que retornará -2 (um valor negativo), logo, 3 será classificado como menor que 5.

Dessa mesma forma, imagine a comparação dos valores 9 e 6. O método .sort() irá verificar o resultado de 9 - 6, que é 3 (um valor positivo), sendo assim, 9 será classificado como maior que 6.

Espero que isso tenha te ajudado a entender melhor o método .sort()!

Caso restem dúvidas, fique à vontade para mandar aqui sua dúvida!

Abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!