"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como o método `sort()` do JavaScript usa uma função de retorno de chamada para classificação numérica?

Como o método `sort()` do JavaScript usa uma função de retorno de chamada para classificação numérica?

Publicado em 2024-11-26
Navegar:573

How Does JavaScript's `sort()` Method Use a Callback Function for Numerical Sorting?

Como o método Sort() do Javascript utiliza uma função de retorno de chamada para classificação numérica

Em Javascript, o método sort() permite que arrays sejam classificados de forma personalizada. Compreender as complexidades desse método pode ser desafiador, especialmente para iniciantes.

Como o método Sort() utiliza uma função de retorno de chamada

O método sort() aceita um retorno de chamada funcionar como argumento. Esta função é invocada diversas vezes durante o processo de classificação, com dois números passados ​​para ela a cada vez. Esses números representam os elementos atuais que estão sendo comparados. O valor de retorno da função determina como esses elementos são ordenados no array classificado final.

Exemplo:

Considere o seguinte código:

var array=[25, 8, 7, 41]

array.sort(function(a,b){
  return a - b
})

Neste exemplo, o método sort() é usado para organizar o array array em ordem numérica crescente. A função de retorno de chamada é definida da seguinte forma:

function(a,b){
  return a - b
}

Esta função de retorno de chamada usa dois parâmetros, aeb, representando os dois elementos que estão sendo comparados. Ele calcula sua diferença (a - b).

Critérios de classificação

O resultado do cálculo da função de retorno de chamada determina a ordem de classificação. Se o resultado for:

  • Maior que 0: O elemento representado por a precede o elemento representado por b na matriz classificada.
  • Igual para 0: A ordem dos elementos permanece inalterada.
  • Menos que 0: O elemento representado por b precede o elemento representado por a na matriz classificada.

Processo de classificação

O método sort() itera pela matriz, invocando a função de retorno de chamada para cada par de elementos . Com base na saída da função, ela ajusta a ordem dos elementos até que todo o array seja classificado.

Log de invocações de retorno de chamada (exemplo)

Se modificamos o retorno de chamada funcionam da seguinte forma:

function(a,b){
  console.log(`comparing ${a},${b}`);
  return a > b ? 1
               : a === b ? 0 
                         : -1;
}

Obteríamos o seguinte log de invocações de retorno de chamada:

comparing 25,8
comparing 25,7
comparing 8,7
comparing 25,41

Isso demonstra que a função de retorno de chamada é de fato invocada várias vezes, com os pares de elementos mudando a cada iteração.

Em resumo, o método sort() do Javascript utiliza uma função de retorno de chamada para determinar a ordem de classificação dos elementos da matriz comparando-os em pares. Esta função de retorno de chamada é invocada várias vezes durante o processo de classificação e sua saída determina a matriz classificada final.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3