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?
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?
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.