Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Array : méthode toSorted()

Baseline 2023
Newly available

Depuis ⁨July 2023⁩, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.

La méthode toSorted() des instances de Array est la version copiante de la méthode sort(). Elle retourne un nouveau tableau dont les éléments sont triés par ordre croissant.

Syntaxe

js
toSorted()
toSorted(compareFn)

Paramètres

compareFn Facultatif

Une fonction qui définit l'ordre des éléments. Si elle est omise, les éléments du tableau sont convertis en chaînes de caractères, puis triés selon la valeur du point de code Unicode de chaque caractère. Voir sort() pour plus d'informations.

Valeur de retour

Un nouveau tableau dont les éléments sont triés par ordre croissant.

Description

Voir sort() pour plus d'informations sur le paramètre compareFn.

Lorsqu'elle est utilisée sur un tableau creux, la méthode toSorted() parcourt les cases vides comme si elles avaient la valeur undefined.

La méthode toSorted() est générique. Elle attend seulement que la valeur de this possède une propriété length et des propriétés à clés entières.

Exemples

Trier un tableau

js
const months = ["Mar", "Jan", "Feb", "Dec"];
const sortedMonths = months.toSorted();
console.log(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar']
console.log(months); // ['Mar', 'Jan', 'Feb', 'Dec']

const values = [1, 10, 21, 2];
const sortedValues = values.toSorted((a, b) => a - b);
console.log(sortedValues); // [1, 2, 10, 21]
console.log(values); // [1, 10, 21, 2]

Pour plus d'exemples d'utilisation, voir sort().

Utiliser toSorted() sur un tableau creux

Les cases vides sont triées comme si elles avaient la valeur undefined. Elles sont toujours placées à la fin du tableau et compareFn n'est pas appelé pour elles.

js
console.log(["a", "c", , "b"].toSorted()); // ['a', 'b', 'c', undefined]
console.log([, undefined, "a", "b"].toSorted()); // ["a", "b", undefined, undefined]

Appeler toSorted() sur un objet qui n'est pas un tableau

La méthode toSorted() lit la propriété length de this. Elle collecte ensuite toutes les propriétés à clé entière existantes dans l'intervalle de 0 à length - 1, les trie, puis les écrit dans un nouveau tableau.

js
const arrayLike = {
  length: 3,
  unrelated: "foo",
  0: 5,
  2: 4,
  3: 3, // ignoré par toSorted() car length vaut 3
};
console.log(Array.prototype.toSorted.call(arrayLike));
// [4, 5, undefined]

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.tosorted

Compatibilité des navigateurs

Voir aussi