JavaScript Array toSorted()

Definição e uso

toSorted() O método ordena os elementos do array em ordem alfabética.

toSorted() O método retorna um novo array.

toSorted() O método não substitui o array original.

toSorted() O método é sort() Versão cópia do método.

Veja também:

Método sort() do Array

Método reverse() do Array

Função de comparação de classificação

Classificar strings por ordem alfabética tem bom efeito ("Apple" está antes de "Banana").

Mas, classificar números pode gerar resultados incorretos.

"25" é maior que "100", porque "2" é maior que "1".

Pode-se resolver este problema fornecendo uma "função de comparação" (veja os exemplos abaixo).

Exemplo

Exemplo 1

// Criar um array
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// Ordenar o array
const fruits2 = fruits.toSorted();

Experimente você mesmo

Exemplo 2

Ordem inversa após classificação:

// Criar um array
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// Ordenar o array
const fruits2 = fruits.toSorted();
// Inverter a array
fruits2.reverse();

Experimente você mesmo

Exemplo 3

Ordenar números em ordem crescente usando a função de ordenação:

// Criar um array
const points = [40, 100, 1, 5, 25, 10];
// Ordenar o array
let points2 = points.toSorted(function(a, b){return a - b});

Experimente você mesmo

Exemplo 4

Ordenar números em ordem decrescente:

// Criar um array
const points = [40, 100, 1, 5, 25, 10];
// Ordenar o array
let points2 = points.toSorted(function(a, b){return b - a});

Experimente você mesmo

Exemplo 5

Encontrar o menor valor:

// Criar um array
const points = [40, 100, 1, 5, 25, 10];
// Ordenar números em ordem crescente
let points2 = points.toSorted(function(a, b){return a - b});
let lowest = points2[0];

Experimente você mesmo

Exemplo 6

Encontrar o maior valor:

// Criar um array
const points = [40, 100, 1, 5, 25, 10];
// Ordenar números em ordem decrescente
let points2 = points.toSorted(function(a, b){return b - a});
let highest = points2[0];

Experimente você mesmo

Exemplo 7

Encontrar o maior valor:

// Criar um array
const points = [40, 100, 1, 5, 25, 10];
// Ordenar números em ordem crescente
let points2 = points.toSorted(function(a, b){return a - b});
let highest = points2[points.length - 1];

Experimente você mesmo

Sintaxe

array.sort(compareFunction)

Parâmetros

Parâmetros Descrição
compareFunction

Opcional. Define a função de ordem de classificação. Esta função deve retornar um valor negativo, zero ou positivo com base nos parâmetros:

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

Quando o sort() compara dois valores, ele envia esses valores para a função de comparação e ordena os valores com base no retorno (negativo, zero, positivo).

Exemplo:

A função de ordenação considera 40 como um valor menor do que 100.

Quando compara 40 e 100, a chamada sort() invoca a função function(40, 100).

A função calcula 40 - 100 e retorna -60 (valor negativo).

Retorno

Tipo Descrição
Array Novo array ordenado.

Suporte do navegador

toSorted() É uma característica do ES2023.

A partir de julho de 2023, todos os navegadores modernos suportam este método:

Chrome Edge Firefox Safari Opera
Chrome 110 Edge 110 Firefox 115 Safari 16.4 Opera 96
Fevereiro de 2023 Fevereiro de 2023 Julho de 2023 Março de 2023 Maio de 2023