Нативная сортировка [2,14,19]?

Привет всем.


Вопрос простой.

Бегло просмотрел ресурсы — объяснение не нашел.

И так, почему?


[2,14,19].sort()


>> [14, 19, 2]


Почему выход такой «отсортированный»?

Спасибо.
  • Вопрос задан
  • 2532 просмотра
Решения вопроса 1
Stdit
@Stdit
Потому что если не указать функцию сравнения, она воспринимает элементы как строки и сортирует их по алфавиту.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
pxx
@pxx
Я всегда любил приведение типов в Javascript. Из моего любимого отстраненного хардкора:
[ ] + [ ] = "" (empty string)
[ ] + { } = "[object Object]"
{ } + [ ] = 0
{ } + { } = NaN
Ответ написан
Keenest
@Keenest
var arr = [1, 10, 200, 5, 4];
var f = function (x, y) {
 return x - y;
};
console.log(arr.sort(f));

получим то что нужно — [1, 4, 5, 10, 200].
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы