Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Parametro A e B

Gostaria de saber ao certo sobre o uso dos parametros a e b no código :

function ordenar(lista, propriedade) {
  const resultado = lista.sort((**a**, **b**) => {
    if (a[propriedade] < b[propriedade]) {
      return -1;
    }
    if (a[propriedade] > b[propriedade]) {
      return 1;
    }
    return 0;
  });

  return resultado;
}

Queria saber como que é o trabalho por tras dos panos com relação ao parametros "a" e "b" passados em sort, é como se eu tivesse um array com 5 elementos : [elemento1, elemento2, elemento3, elemento4, elemento5] e ai o elemento 1 (que no caso seria o "a" do parametro) fosse comparado com 2, 3, 4 e 5 (que no caso seriam o "b" do parametro em cada iteração), depois o elemento 2 (que no caso seria o "a" do parametro) fosse comparado ao 3, 4 e 5 (que no caso seriam o "b" do parametro em cada iteração), depois o elemento 3 comparado ao 4 e 5 e etc ou é uma função interna mais eleborada e própria do próprio metodo sort() ?

1 resposta
solução!

Olá, Leonardo! Tudo bem?

Os parâmetros "a" e "b" que você vê na função sort() são utilizados para comparar dois elementos do array durante o processo de ordenação. Na verdade, eles representam dois elementos consecutivos do array que estão sendo comparados em cada iteração.

No seu exemplo, se você tiver um array com 5 elementos [elemento1, elemento2, elemento3, elemento4, elemento5], o "a" representa o elemento atual sendo comparado e o "b" representa o próximo elemento que será comparado. Ou seja, na primeira iteração, o "a" será o elemento1 e o "b" será o elemento2. Na segunda iteração, o "a" será o elemento2 e o "b" será o elemento3, e assim por diante.

A função de comparação que você passa para o sort() é responsável por definir a lógica de ordenação. No seu exemplo, a função compara a propriedade especificada (propriedade) de cada elemento "a" e "b". Se a propriedade de "a" for menor que a propriedade de "b", retorna -1. Se a propriedade de "a" for maior que a propriedade de "b", retorna 1. E se as propriedades forem iguais, retorna 0.

Dessa forma, o sort() utiliza essa função de comparação para ordenar os elementos do array com base na propriedade especificada.

Para mais dúvidas, veja esse trecho da documentação oficial: Array - Sort

Espero ter ajudado! Bons estudos!

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