Baseline 2023
Newly available
ÐеÑод toSorted()
ÑкземплÑÑов Array
возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²Ñй маÑÑив Ñ ÑлеменÑами, оÑÑоÑÑиÑованнÑми в поÑÑдке возÑаÑÑаниÑ. ЯвлÑеÑÑÑ ÐºÐ¾Ð¿Ð¸ÑÑÑÑей веÑÑией меÑода sort()
.
toSorted()
toSorted(compareFn)
ÐаÑамеÑÑÑ
compareFn
ÐеобÑзаÑелÑнÑй
ФÑнкÑиÑ, опÑеделÑÑÑÐ°Ñ Ð¿Ð¾ÑÑдок ÑоÑÑиÑовки. ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾Ð¿ÑÑен, ÑлеменÑÑ Ð¼Ð°ÑÑива пÑеобÑазÑÑÑÑÑ Ð² ÑÑÑоки, а заÑем ÑоÑÑиÑÑÑÑÑÑ Ð² ÑооÑвеÑÑÑвии Ñо знаÑением каждого Ñимвола в ÑÑандаÑÑе Юникод. СмоÑÑиÑе sort()
Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной инÑоÑмаÑии.
ÐовÑй маÑÑив Ñ Ð¾ÑÑоÑÑиÑованнÑми в поÑÑдке возÑаÑÑÐ°Ð½Ð¸Ñ ÑлеменÑами.
ÐпиÑаниеСмоÑÑиÑе sort()
Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной инÑоÑмаÑии о паÑамеÑÑе compareFn
.
ÐÑи иÑполÑзовании меÑода toSorted()
Ñ ÑазÑежÑннÑми маÑÑивами меÑод toSorted()
обÑабаÑÑÐ²Ð°ÐµÑ Ð¿ÑÑÑÑе ÑлеменÑÑ Ñак, как еÑли Ð±Ñ Ð¾Ð½Ð¸ имели знаÑение undefined
.
ÐеÑод toSorted()
ÑвлÑеÑÑÑ ÑнивеÑÑалÑнÑм. ÐÐ»Ñ ÐµÐ³Ð¾ ÑабоÑÑ Ð½ÐµÐ¾Ð±Ñ
одимо ÑолÑко, ÑÑÐ¾Ð±Ñ Ð·Ð½Ð°Ñение this
имело ÑвойÑÑво length
и ÑвойÑÑва Ñ ÑелоÑиÑленнÑми индекÑами.
const months = ["ÐаÑ", "Янв", "Фев", "Ðек"];
const sortedMonths = months.toSorted();
console.log(sortedMonths); // ["Ðек", "ÐаÑ", "Фев", "Янв"]
console.log(months); // ["ÐаÑ", "Янв", "Фев", "Ðек"]
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]
СмоÑÑиÑе sort()
Ð´Ð»Ñ Ð¸Ð·ÑÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ
пÑимеÑов иÑполÑзованиÑ.
ÐÑÑÑÑе ÑлеменÑÑ ÑоÑÑиÑÑÑÑÑÑ Ñак, как еÑли Ð±Ñ Ð¾Ð½Ð¸ имели знаÑение undefined
. Ð ÑезÑлÑÑаÑе ÑоÑÑиÑовки они вÑегда оказÑваÑÑÑÑ Ð² конÑе маÑÑива, пÑи ÑÑом compareFn
Ð´Ð»Ñ Ð½Ð¸Ñ
не вÑзÑваеÑÑÑ.
console.log(["а", "в", , "б"].toSorted()); // ["а", "б", "в", undefined]
console.log([, undefined, "а", "б"].toSorted()); // ["а", "б", undefined, undefined]
ÐÑзов меÑода toSorted() Ð´Ð»Ñ Ð¾Ð±ÑекÑов, не ÑвлÑÑÑиÑ
ÑÑ Ð¼Ð°ÑÑивами
Рданном пÑимеÑе ÑоздаÑÑÑÑ Ð¾Ð±ÑÐµÐºÑ arrayLike
, коÑоÑÑй не ÑвлÑеÑÑÑ Ð¼Ð°ÑÑивом, но он Ð¾Ð±Ð»Ð°Ð´Ð°ÐµÑ ÑвойÑÑвом length
и ÑелоÑиÑленнÑми клÑÑами. ÐоÑколÑÐºÑ arrayLike
Ð¸Ð¼ÐµÐµÑ ÑвойÑÑво length
, Ñавное 3, меÑод toSorted()
ÑоздаÑÑ Ð½Ð¾Ð²Ñй маÑÑив Ñ Ð´Ð»Ð¸Ð½Ð¾Ð¹ Ñавной 3. Ð ÑезÑлÑÑиÑÑÑÑий маÑÑив попадÑÑ Ð¾ÑÑоÑÑиÑованнÑе знаÑÐµÐ½Ð¸Ñ Ñ ÑелоÑиÑленнÑми клÑÑами в диапазоне Ð¾Ñ 0
до length - 1
. ÐÐ»ÐµÐ¼ÐµÐ½Ñ Ñ Ð¸Ð½Ð´ÐµÐºÑом 1
пÑопÑÑен, поÑÑÐ¾Ð¼Ñ Ð¾Ð½ пÑевÑаÑиÑÑÑ Ð² знаÑение undefined
.
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
3: 3, // игноÑиÑÑеÑÑÑ Ð¼ÐµÑодом toSorted(), Ñак как длина Ñавна 3
};
console.log(Array.prototype.toSorted.call(arrayLike));
// [4, 5, undefined]
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4