Array.prototype.toSorted()
Baseline 2023Newly available
Since July 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
El método toSorted()
devuelve un nuevo array con sus elementos ordenados en orden ascendente sin alterar el array original. Forma parte del objeto Array
y es la versión
copying del método sort()
.
Sintaxis
toSorted()
toSorted(compareFn)
Parámetros
Valor devuelto
Un nuevo array con sus elementos ordenados de manera ascendente.
Descripción
Ver sort()
para más información del parametro compareFn
.
Cuando se usa en arrays dispersos, el método toSorted()
itera las posiciones vacías del array como si tuvieran el valor de undifined
.
El método toSorted()
es genérico. Solo requiere que el valor de this
tenga una propiedad length
y propiedades indexadas por enteros.
Ejemplos
Ordenando un array
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]
Para más ejemplos de uso, ver sort()
.
Usando toSorted() en arrays dispersos
Las posiciones vacías son ordenadas como si tuvieran el valor undefined
. Siempre son ubicadas al final del array y no se invoca compareFn
para ellas.
console.log(["a", "c", , "b"].toSorted()); // ['a', 'b', 'c', undefined]
console.log([, undefined, "a", "b"].toSorted()); // ["a", "b", undefined, undefined]
Llamar a toSorted() en objetos que no son arrays
El método toSorted()
lee la propiedad length
de this
. Luego recopila todas las propiedades existentes indexadas por enteros en el rango de 0 a length - 1, las ordena y las escribe en un nuevo array.
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
3: 3, // ignorado por toSorted() dado que length es 3
};
console.log(Array.prototype.toSorted.call(arrayLike));
// [4, 5, undefined]
Especificaciones
Specification |
---|
ECMAScript® 2026 Language Specification # sec-array.prototype.tosorted |