toSorted
Motivação
Este método foi adicionado no JavaScript para facilitar a ordenação de um array sem modificar o array original, deixando o código mais limpo e mais seguro.
Algumas vantagens em utilizar array sorted:
-
Imutabilidade: toSorted() ajuda a manter a imutabilidade dos dados. Na maioria das aplicações é muito importante evitar efeitos colaterais, mantendo sempre o código previsível, facilitando debug, testes e aumentando a confiabilidade.
-
Facilidade de uso: Em vez de criar uma cópia do array o método traz uma nova referência podendo ser armazenado em uma variável para uso, tendo mais controle da aplicação.
-
Segurança: Ao garantir que o array original não será modificado, toSorted() reduz o risco de bugs que podem ocorrer devido a modificações não intencionais nos dados. Isso é particularmente útil em aplicações complexas onde os arrays podem ser compartilhados ou reutilizados em diferentes partes do código.
Exemplo:
const olympicSports = ["Swimming", "Athletics", "Gymnastics", "Cycling", "Boxing"]
const sortedOlympicSports = olympicSports.toSorted()
console.log(sortedOlympicSports) // ['Athletics', 'Boxing', 'Cycling', 'Gymnastics', 'Swimming']
console.log(olympicSports) // ['Swimming', 'Athletics', 'Gymnastics', 'Cycling', 'Boxing']
Essa forma é bem diferente de utilizar o sort
, por cria-se um novo array e não é gerado a modificação do mesmo, o que pode gerar grandes problemas.
Se aplicarmos o mesmo exemplo com o sort
ocorre uma mutação, ou seja, o array original é modificado, o que pode causar diversos problemas na aplicação.
Assim como com o sort
também é possível passar uma função para indicar a forma de ordenação:
const values = [1, 10, 21, 2]
const sortedValues = values.toSorted((a, b) => a - b)
// novo array
console.log(sortedValues) // [1, 2, 10, 21]
// sem mutabilidade
console.log(values) // [1, 10, 21, 2]