Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавляет доку про метод sort #5135

Closed
wants to merge 2 commits into from

Conversation

Maksim631
Copy link
Contributor

Описание

Добавляет доку про метод sort() у массивов

Closes #4826

Чек-лист

  • Текст оформлен согласно руководству по стилю
  • Ссылки на внутренние материалы начинаются со слеша и заканчиваются слэшем либо якорем на заголовок (/css/color/, /tools/json/, /tools/gulp/#kak-ponyat)
  • Ссылки на картинки, видео и демки относительные (images/example.png, demos/example/, ../demos/example/)

@github-actions github-actions bot added js Контент по JavaScript дока Справочный материал labels Jan 23, 2024
Copy link

Превью контента из 635c6be опубликовано.


## Кратко

Метод `sort()` позволяет отсортировать массив с мутированием исходного массива. По умолчанию сортировка выполняется в порядке возрастания, элементы массива приводятся к строке, и их порядок сравнивается в UTF-16 кодировке.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай добавим важно дополнение

The sort must be stable


Метод `sort()` позволяет отсортировать массив с мутированием исходного массива. По умолчанию сортировка выполняется в порядке возрастания, элементы массива приводятся к строке, и их порядок сравнивается в UTF-16 кодировке.

Мы можем передать функцию-компаратор для управления алгоритмом сравнения элементов. Метод возвращает ссылку на массив.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мне кажется тут не совсем корректно. Алгоритм остается один и тот же, просто на каждом шаге вызывается твоя собственная функция

sort(compareFn)
```

Функция-компаратор должна возвращать число. В функцию передаётся два аргумента `a` и `b`. Знак этого числа определяет порядок двух элементов относительно друг друга:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не обязательно. Вот это не бросит ошибку
[1,2,3].sort(() => undefined)


```js
const nums = [3, 4, 0]
const compareFn = (a, b) => b - a
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это работает, но тут надо проявлять осторожность :) На случай если в массиве не только числа
(Здесь не надо ничего исправлять)

@HellSquirrel
Copy link
Member

HellSquirrel commented Apr 14, 2024

@Maksim631 Ping :)

@HellSquirrel
Copy link
Member

Пока закрою этот PR. @Maksim631 переоткрывай как появишься. Вместе допилим

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js Контент по JavaScript дока Справочный материал
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Методы массива: sort
3 participants