Ordenamento em JavaScript

toSorted()

O método toSorted() de uma instância de Array ordena os elementos que o compõe. O comportamento padrão de toSorted() é ordenar de maneira alfabética ascendente, convertendo seus elementos em strings e comparando cada caractere em seus valores UTF-16.

O método toSorted() não é destrutivo, considerado uma versão copiadora de sort().

Demo

Array.toSorted()

// criação do array original let inimigos = ["vegê", "isadora", "alex", "filipe", "lucas"];
// ordenamento dos elementos do array alfabeticamente let inimigosOrd = strings.toSortedt(); console.log(inimigos); console.log(inimigosOrd);



Ordenar números

O método toSorted(), por padrão, trata todos os elementos que compõe o array como string. Se o array armazena os valores [100, 4, 20], o método ordenará os elementos da seguinte forma:

  • Primeiro, os números inteiros serão convertidos em strings: ["100", "2", "40"]
  • Pegue o primeiro caractere que compõe os strings (nesse caso: '1', '4' e '2')
  • Ordene as strings comparando o valor dos caracteres na tabela UTF-16

Como '1' é menor que '4' e '2', o elemento "100" ficará na primeira posição. O array ordenado pelo método toSorted() retornará ["100", "20", "4"].

Para o método ordenar corretamente números, tanto de maneira ascendente quanto decrescente, é necessário instruir o método como os elementos devem ser comparados.

Array.toSorted()

// criação do array original let nums = [100, 4, 20]; console.log(nums);
// ordenar array sem instrução let numsOrd = nums.toSorted(); console.log(numsOrd);
// ordenamento dos elementos do array de maneira ascendente numsOrd = nums.toSorted((a, b) => a - b); console.log(numsOrd);
// ordenamento dos elementos do array de maneira descendente numsOrd = nums.toSorted((a,b) => b - a); console.log(numsOrd);







O sort() reconhece a ordem entre dois elementos ao subtrair os valores de um pelo outro.

  • Se o valor for negativo ou 0, não é necessário trocar a ordem entre os dois elementos
  • Se o valor for positivo, troque a ordem entre os dois elementos