Метод sort() в Js - не верно кажется сортирует

Подскаите пожалуйста, почему в данном коде идет не верная сортировка?

let w = [1, 23, 1, 22, 21, 9]
w.sort()
console.log(w)
//> Array [1, 1, 21, 22, 23, 9]

проверено на https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Алексей Шиманский

В документации написано

Порядок сортировки по умолчанию — восходящий, основанный на преобразовании элементов в строки и последующем сравнении их последовательностей значений кодовых единиц UTF-16.

Т.е. по сути по умлочанию сортируются строки. В этом проблема.

Поэтому лучше всегда писать компаратор для сравнения.

→ Ссылка