From fcbe5b895b8aa61da9f03ef00db515d1b8dbd880 Mon Sep 17 00:00:00 2001 From: Danil Anapreychik Date: Sun, 2 Mar 2025 11:17:04 +0300 Subject: [PATCH 1/6] docs: add ru translation for files/ru/web/javascript/reference/global_objects/array/tosorted/index.md This commit updates Web/JavaScript/Reference/Global_Objects/Array/toSorted translation for ru locale. --- .../global_objects/array/tosorted/index.md | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/array/tosorted/index.md diff --git a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md new file mode 100644 index 00000000000000..dec00fc697efe0 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md @@ -0,0 +1,93 @@ +--- +title: Array.prototype.toSorted() +slug: Web/JavaScript/Reference/Global_Objects/Array/toSorted +--- + +{{JSRef}} + +Метод **`toSorted()`** возвращает новый массив с отсортированными в порядке возрастания элементами. Является [копирующей](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#copying_methods_and_mutating_methods) версией метода {{jsxref("Array/sort", "sort()")}}. + +## Синтаксис + +```js-nolint +toSorted() +toSorted(compareFn) +``` + +### Параметры + +- `compareFn` {{optional_inline}} + - : Указывает функцию, определяющую порядок сортировки. Если опущен, массив сортируется в соответствии со значениями кодовых точек каждого символа Unicode, полученных путём преобразования каждого элемента в строку. Смотрите {{jsxref("Array/sort", "sort()")}} для получения дополнительной информации. + +### Возвращаемое значение + +Новый массив с отсортированными в порядке возрастания элементами. + +## Описание + +Смотрите {{jsxref("Array/sort", "sort()")}} для получения дополнительной информации о параметре `compareFn`. + +Когда мы используем метод `toSorted()` на массиве с [пропущенными элементами](/ru/docs/Web/JavaScript/Guide/Indexed_collections#sparse_arrays), метод `toSorted()` проитерирует пустые элементы так, как если бы они имели значение `undefined`. + +Метод `toSorted()` - это [generic](/ru/docs/Web/JavaScript/Reference/Global_Objects/Array#generic_array_methods). Он ожидает, что значение `this` будет иметь свойство `length` и свойства с целочисленными ключами. + +## Примеры + +### Сортировка элементов массива + +```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] +``` + +Смотрите {{jsxref("Array/sort", "sort()")}} для изучения дополнительных примеров использования. + +### Использование toSorted() на массивах с пропущенными элементами + +Пустые элементы сортируются так, как если бы они имели значение `undefined`. В результате сортировки они всегда оказываются в конце массива, при этом `compareFn` для них не вызывается. + +```js +console.log(["a", "c", , "b"].toSorted()); // ['a', 'b', 'c', undefined] +console.log([, undefined, "a", "b"].toSorted()); // ["a", "b", undefined, undefined] +``` + +### Вызов метода toSorted() на объектах которые не являются массивом + +В данном примере создаётся объект `arrayLike`, который не является обычным массивом, но он обладает свойством `length` и целочисленными ключами. Поскольку `arrayLike` имеет свойство `length` равное 3, метод `toSorted()` создаст новый массив с длиной равной 3. В результирующий массив попадут отсортированные значения с целочисленными ключами в диапазоне от `0` до `length - 1`. Как можно заметить элемент с индексом '1' пропущен, поэтому он имеет значение `undefined`. + +```js +const arrayLike = { + length: 3, + unrelated: "foo", + 0: 5, + 2: 4, + 3: 3, // игнорируется toSorted(), так как длина равна 3 +}; +console.log(Array.prototype.toSorted.call(arrayLike)); +// [4, 5, undefined] +``` + +## Спецификации + +{{Specifications}} + +## Совместимость с браузерами + +{{Compat}} + +## Смотрите также + +- [Полифил `Array.prototype.toSorted` в `core-js`](https://github.com/zloirock/core-js#change-array-by-copy) +- Руководство по [упорядоченным наборам данных](/en-US/docs/Web/JavaScript/Guide/Indexed_collections) +- {{jsxref("Array.prototype.sort()")}} +- {{jsxref("Array.prototype.toReversed()")}} +- {{jsxref("Array.prototype.toSpliced()")}} +- {{jsxref("Array.prototype.with()")}} +- {{jsxref("TypedArray.prototype.toSorted()")}} From 1071b6062f4eea407a71a08788a210e2d89b1df5 Mon Sep 17 00:00:00 2001 From: Danil Anapreychik Date: Sun, 2 Mar 2025 11:27:04 +0300 Subject: [PATCH 2/6] Apply suggestion from lint Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../javascript/reference/global_objects/array/tosorted/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md index dec00fc697efe0..11f9549458fd45 100644 --- a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md +++ b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md @@ -5,7 +5,7 @@ slug: Web/JavaScript/Reference/Global_Objects/Array/toSorted {{JSRef}} -Метод **`toSorted()`** возвращает новый массив с отсортированными в порядке возрастания элементами. Является [копирующей](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#copying_methods_and_mutating_methods) версией метода {{jsxref("Array/sort", "sort()")}}. +Метод **`toSorted()`** возвращает новый массив с отсортированными в порядке возрастания элементами. Является [копирующей](/ru/docs/Web/JavaScript/Reference/Global_Objects/Array#copying_methods_and_mutating_methods) версией метода {{jsxref("Array/sort", "sort()")}}. ## Синтаксис From ceb0140de19ce549e7d33f11315443087761595c Mon Sep 17 00:00:00 2001 From: Danil Anapreychik Date: Sun, 2 Mar 2025 11:27:29 +0300 Subject: [PATCH 3/6] Apply suggestion from lint Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../javascript/reference/global_objects/array/tosorted/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md index 11f9549458fd45..5e0fb42998a9c1 100644 --- a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md +++ b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md @@ -85,7 +85,7 @@ console.log(Array.prototype.toSorted.call(arrayLike)); ## Смотрите также - [Полифил `Array.prototype.toSorted` в `core-js`](https://github.com/zloirock/core-js#change-array-by-copy) -- Руководство по [упорядоченным наборам данных](/en-US/docs/Web/JavaScript/Guide/Indexed_collections) +- Руководство по [упорядоченным наборам данных](/ru/docs/Web/JavaScript/Guide/Indexed_collections) - {{jsxref("Array.prototype.sort()")}} - {{jsxref("Array.prototype.toReversed()")}} - {{jsxref("Array.prototype.toSpliced()")}} From fd2781d7d01632ba5adea8ec1093da55d61c444a Mon Sep 17 00:00:00 2001 From: Danil Anapreychik Date: Sun, 2 Mar 2025 11:44:30 +0300 Subject: [PATCH 4/6] Apply suggestions from code review --- .../reference/global_objects/array/tosorted/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md index 5e0fb42998a9c1..2292e4e1c83e4f 100644 --- a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md +++ b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md @@ -5,7 +5,7 @@ slug: Web/JavaScript/Reference/Global_Objects/Array/toSorted {{JSRef}} -Метод **`toSorted()`** возвращает новый массив с отсортированными в порядке возрастания элементами. Является [копирующей](/ru/docs/Web/JavaScript/Reference/Global_Objects/Array#copying_methods_and_mutating_methods) версией метода {{jsxref("Array/sort", "sort()")}}. +Метод **`toSorted()`** возвращает новый массив с отсортированными в порядке возрастания элементами. Является **копирующей** версией метода {{jsxref("Array/sort", "sort()")}}. ## Синтаксис @@ -27,9 +27,9 @@ toSorted(compareFn) Смотрите {{jsxref("Array/sort", "sort()")}} для получения дополнительной информации о параметре `compareFn`. -Когда мы используем метод `toSorted()` на массиве с [пропущенными элементами](/ru/docs/Web/JavaScript/Guide/Indexed_collections#sparse_arrays), метод `toSorted()` проитерирует пустые элементы так, как если бы они имели значение `undefined`. +Когда мы используем метод `toSorted()` на массиве с пропущенными элементами, метод `toSorted()` проитерирует пустые элементы так, как если бы они имели значение `undefined`. -Метод `toSorted()` - это [generic](/ru/docs/Web/JavaScript/Reference/Global_Objects/Array#generic_array_methods). Он ожидает, что значение `this` будет иметь свойство `length` и свойства с целочисленными ключами. +Метод `toSorted()` ожидает, что значение `this` будет иметь свойство `length` и свойства с целочисленными ключами. ## Примеры From cce67563aaef440137ee302fc17e84b81ee374fb Mon Sep 17 00:00:00 2001 From: Danil Anapreychik Date: Fri, 7 Mar 2025 09:25:20 +0300 Subject: [PATCH 5/6] Apply suggestions from code review Co-authored-by: Leonid Vinogradov --- .../global_objects/array/tosorted/index.md | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md index 2292e4e1c83e4f..e3bf899796eac5 100644 --- a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md +++ b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md @@ -1,11 +1,13 @@ --- title: Array.prototype.toSorted() slug: Web/JavaScript/Reference/Global_Objects/Array/toSorted +l10n: + sourceCommit: e8320dfbed49d37589d0fe759ef6506885f340f7 --- {{JSRef}} -Метод **`toSorted()`** возвращает новый массив с отсортированными в порядке возрастания элементами. Является **копирующей** версией метода {{jsxref("Array/sort", "sort()")}}. +Метод **`toSorted()`** экземпляров {{jsxref("Array")}} возвращает новый массив с элементами, отсортированными в порядке возрастания. Является **копирующей** версией метода {{jsxref("Array/sort", "sort()")}}. ## Синтаксис @@ -17,7 +19,7 @@ toSorted(compareFn) ### Параметры - `compareFn` {{optional_inline}} - - : Указывает функцию, определяющую порядок сортировки. Если опущен, массив сортируется в соответствии со значениями кодовых точек каждого символа Unicode, полученных путём преобразования каждого элемента в строку. Смотрите {{jsxref("Array/sort", "sort()")}} для получения дополнительной информации. + - : Функция, определяющая порядок сортировки. Если этот параметр опущен, элементы массива преобразуются в строки, а затем сортируются в соответствии со значением каждого символа в стандарте Юникод. Смотрите {{jsxref("Array/sort", "sort()")}} для получения дополнительной информации. ### Возвращаемое значение @@ -27,9 +29,9 @@ toSorted(compareFn) Смотрите {{jsxref("Array/sort", "sort()")}} для получения дополнительной информации о параметре `compareFn`. -Когда мы используем метод `toSorted()` на массиве с пропущенными элементами, метод `toSorted()` проитерирует пустые элементы так, как если бы они имели значение `undefined`. +При использовании метода `toSorted()` с разрежёнными массивами метод `toSorted()` обрабатывает пустые элементы так, как если бы они имели значение `undefined`. -Метод `toSorted()` ожидает, что значение `this` будет иметь свойство `length` и свойства с целочисленными ключами. +Метод `toSorted()` является универсальным. Для его работы необходимо только, чтобы значение `this` имело свойство `length` и свойства с целочисленными индексами. ## Примеры @@ -54,13 +56,13 @@ console.log(values); // [1, 10, 21, 2] Пустые элементы сортируются так, как если бы они имели значение `undefined`. В результате сортировки они всегда оказываются в конце массива, при этом `compareFn` для них не вызывается. ```js -console.log(["a", "c", , "b"].toSorted()); // ['a', 'b', 'c', undefined] -console.log([, undefined, "a", "b"].toSorted()); // ["a", "b", undefined, undefined] +console.log(["а", "в", , "б"].toSorted()); // ["а", "б", "в", undefined] +console.log([, undefined, "а", "б"].toSorted()); // ["а", "б", undefined, undefined] ``` -### Вызов метода toSorted() на объектах которые не являются массивом +### Вызов метода toSorted() для объектов, не являющихся массивами -В данном примере создаётся объект `arrayLike`, который не является обычным массивом, но он обладает свойством `length` и целочисленными ключами. Поскольку `arrayLike` имеет свойство `length` равное 3, метод `toSorted()` создаст новый массив с длиной равной 3. В результирующий массив попадут отсортированные значения с целочисленными ключами в диапазоне от `0` до `length - 1`. Как можно заметить элемент с индексом '1' пропущен, поэтому он имеет значение `undefined`. +В данном примере создаётся объект `arrayLike`, который не является массивом, но он обладает свойством `length` и целочисленными ключами. Поскольку `arrayLike` имеет свойство `length`, равное 3, метод `toSorted()` создаст новый массив с длиной равной 3. В результирующий массив попадут отсортированные значения с целочисленными ключами в диапазоне от `0` до `length - 1`. Элемент с индексом `1` пропущен, поэтому он превратится в значение `undefined`. ```js const arrayLike = { @@ -68,7 +70,7 @@ const arrayLike = { unrelated: "foo", 0: 5, 2: 4, - 3: 3, // игнорируется toSorted(), так как длина равна 3 + 3: 3, // игнорируется методом toSorted(), так как длина равна 3 }; console.log(Array.prototype.toSorted.call(arrayLike)); // [4, 5, undefined] @@ -85,6 +87,7 @@ console.log(Array.prototype.toSorted.call(arrayLike)); ## Смотрите также - [Полифил `Array.prototype.toSorted` в `core-js`](https://github.com/zloirock/core-js#change-array-by-copy) +- [Полифил `Array.prototype.toSorted` от es-shims](https://www.npmjs.com/package/array.prototype.tosorted) - Руководство по [упорядоченным наборам данных](/ru/docs/Web/JavaScript/Guide/Indexed_collections) - {{jsxref("Array.prototype.sort()")}} - {{jsxref("Array.prototype.toReversed()")}} From 525360664b68d4caa35271cd37cc3d4a43a352c1 Mon Sep 17 00:00:00 2001 From: Danil Anapreychik Date: Sun, 9 Mar 2025 10:47:22 +0300 Subject: [PATCH 6/6] Update files/ru/web/javascript/reference/global_objects/array/tosorted/index.md Co-authored-by: Leonid Vinogradov --- .../reference/global_objects/array/tosorted/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md index e3bf899796eac5..10639f8eb612ab 100644 --- a/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md +++ b/files/ru/web/javascript/reference/global_objects/array/tosorted/index.md @@ -38,10 +38,10 @@ toSorted(compareFn) ### Сортировка элементов массива ```js -const months = ["Mar", "Jan", "Feb", "Dec"]; +const months = ["Мар", "Янв", "Фев", "Дек"]; const sortedMonths = months.toSorted(); -console.log(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar'] -console.log(months); // ['Mar', 'Jan', 'Feb', 'Dec'] +console.log(sortedMonths); // ["Дек", "Мар", "Фев", "Янв"] +console.log(months); // ["Мар", "Янв", "Фев", "Дек"] const values = [1, 10, 21, 2]; const sortedValues = values.toSorted((a, b) => a - b);