Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Duvida e Sugestão - Exercícios 4

Boa noite pessoal, poderiam me explicar como funciona o código a baixo?

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

Sugestão: Como iniciante fica difícil pesquisar como funciona determinada parte de um código se eu nem sei ao menos qual é o nome/identificação do trecho que estou tendo dúvidas.

Exemplo, na parte "sort((x,y) => x - y)", o que seria essa setinha =>??

5 respostas
solução!

Bom dia Wesley, vou tentar ajuda-lo:

Trata-se de uma função que recebe três números e ordena eles em ordem crescente.

Na segunda linha, você atribui um array [a,b,c] à constante numerosOrdenados.

Antes dessa atribuição, é aplicada a função sort() ao array [a,b,c]. O sort() "trabalha bem" com strings. Pra usar com números, é utilizada uma outra função dentro dos parênteses do sort(). E no caso, foi usada uma arrow function (esse é o nome da setinha '=>' que você perguntou).

A arrow function é uma "abreviação" da escrita tradicional de alguma função. Por exemplo, se você substituir (x,y) => x - y por function subtrair (x , y) {return x - y}, o resultado será o mesmo.

Observe que a arrow function é bem mais simples, pra fazer a mesma coisa.

Olha aqui como ficaria:

function numeros (a,b,c) {
    const numerosOrdenados = [a,b,c].sort(function subtrair (x , y) {return x - y});
    console.log(`Números ordenados: ${numerosOrdenados.join(', ')}`);
}
numeros(7, 21, 3);
// o console mostrará: Números ordenados: 3, 7, 21

Danilo boa noite, muito obrigado pela ajuda, anotei aqui essa questão do arrow Function para estudar assim que eu terminar esse modulo de Iniciante em programação.

Entendi o como funciona o =>. Mas não entendi a lógica de criar uma função pra subtrair números pra organiza-los de forma crescente. Como esses parâmetros x, y são usados?

Boa noite Renan,

Os parâmetros x e y são usados para fornecer ao sort() a condição necessária para ordenar os valores.

De forma bastante resumida, o sort() compara o primeiro número da lista com o segundo e, através da condição fornecida ali pela subtração de x e y, ele fará uma dessas ações:

  • Se (x - y) resultar em valor negativo (independente de quanto seja), ele não troca. Ex. 3 - 7 = -4. Logo, 3 permanece antes de 7.
  • Se (x - y) resultar em valor positivo (também independente do valor), ele faz a troca. Ex. 21 - 7 = 14. Logo: 7 antes, 21 depois.
  • Se (x - y) resultar em zero, ele não faz nada, porque os valores são iguais. Ex. 5 - 5 = 0.

Essa comparação ocorrerá ao longo da lista, comparando o primeiro valor com o segundo, depois o segundo com o terceiro, terceiro com quarto, quarto com quinto, e assim por diante. Perceba que a comparação é feita com dois números de cada vez, por isso que os parâmetros são dois: x e y.

Eu estava com essa mesma dúvida kkkk obrigado!