Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: sort, type coercion, comparison, array

Что произойдет при сортировке объектов разных типов?

Проверяет понимание поведения сортировки в JavaScript при сравнении элементов разных типов данных.

Короткий ответ

Метод sort() по умолчанию преобразует элементы в строки и сортирует их лексикографически. Это может привести к неожиданным результатам, например, число 10 окажется перед числом 2. Для корректной сортировки чисел нужно передать функцию сравнения.

Длинный ответ

Поведение sort() по умолчанию

Метод Array.prototype.sort() в JavaScript без аргументов преобразует каждый элемент массива в строку и сортирует их в порядке следования кодовых точек Unicode. Это означает, что числа сортируются как строки, что часто приводит к нелогичным результатам.

Пример с числами

const numbers = [10, 2, 1, 20];
numbers.sort();
console.log(numbers); // [1, 10, 2, 20]

Здесь 10 оказывается перед 2, потому что строка "10" меньше строки "2" по лексикографическому порядку.

Смешанные типы

Если массив содержит разные типы (числа, строки, объекты), sort() преобразует их в строки. Объекты становятся строкой "[object Object]", что может вызвать путаницу.

const mixed = [1, "apple", { name: "test" }, 3];
mixed.sort();
console.log(mixed); // [1, 3, "apple", { name: "test" }]

Как правильно сортировать

Для числовой сортировки передайте функцию сравнения:

numbers.sort((a, b) => a - b); // [1, 2, 10, 20]

Для строк используйте localeCompare для учета локали.

Вывод

Всегда используйте функцию сравнения при сортировке, если элементы не являются строками, чтобы избежать неожиданного поведения из-за приведения типов.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#sort

#type coercion

#comparison

#array

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.