Люди, изучающие JavaScript: Я буду использовать array. sorti) для сортировки этого списка чисел!" / it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek 
Люди, изучающие JavaScript: Я буду использовать array. sorti) для сортировки этого списка чисел!"
JavaScript:,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Подробнее
Люди, изучающие JavaScript: Я буду использовать array. sorti) для сортировки этого списка чисел!" JavaScript:
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Развернуть
Зауюзать ф-цию не прочитав доку. Потом удивлять почему она работает не так, как я себе придумал.
zombofrog zombofrog 03.05.202120:25 ответить ссылка -0.6
Согласен. Хотя бывает и обратное:
Описание: Функция сортирует A-Z.
А по факту сортирует только 3 символа: A, -, Z.
crkll crkll 03.05.202121:02 ответить ссылка 11.3
А пример и жизни можно? Часто бывает что доки просто нету, но я давно имею привычку перечитывать исходники подключаемых либ (если это возможно).
Описанное crkll больше на регексп похоже
хз эту мамбуду - \w и A-z это походу перебор для яваскрипта ?
думаю что речь шла о порядке сортировки, а не про регулярки
да, но как бы порядок сортировки в ней можно указать
А однажды попалась и более всратая фигня:
Коммент: "эта хрень сортирует числа".
По факту сортировка для всяких статей и документов (не помню зачем). В "числа" включены и римские, типо: XVIII, IX и т. п.
Долго не мог понять, пока не поднял исходник.
crkll crkll 03.05.202121:15 ответить ссылка 1.1
читать исходники - полезно, интересно и даже необходимо, если речь о npm пакетах (там и фото автора могут быть, и левые текстовые файлы, инструкции по прокачке пресухи и тд)
Представляю, как охренел человек, которому задали устроить сортировку римских чисел.
Hagh Hagh 03.05.202121:26 ответить ссылка 6.0
просто конвертируешь в арабские и сравниваешь. конвертор с кучей ифов. но не сложный.
pils pils 03.05.202121:18 ответить ссылка 9.3
Если в языке или библиотеке, функции, особенно тривиальные, требуют вдумчивого чтения документации, потому что ведут себя не так, как эти же функции в других языках, и не так, как было бы логично, то это яркий пример абсолютно уебанского дизайна.
В идеале, просто при взгляде на список функций какого-либо фасада чего-либо, должно быть однозначно понятно, что и как это что-то работает, и что оно умеет. И функции не должны вести себя не так, как может показаться из названия.
Так внутрь просто надо передать сравнивающую функию аля .sort((a,b) => +a - +b), после того как один раз наебнешься запомнишь на всегда. Задолбали эти мемы про джс когда на самом деле просто програмисты криворукие.
ikarus ikarus 03.05.202121:10 ответить ссылка -0.5
про принцип наименьшего удивления в мире js не слыхали?
в сотнях языков есть функция или метод sort. везде делает то, что ожидается. кроме сраного js.
вот нахуя?
villy villy 03.05.202121:28 ответить ссылка 8.8
причина в динамической типизации. Т.к. массив может содержать значения разных типов, то (по умолчанию) перед сравнением у сравниваемых членов вызывается toString, и сравниваются результирующие строки. Что бы изменить поведение по умолчанию, нужно передать ф-цию, которая будет сравнивать так, как тебе нужно.
нет, причина в долбоебизме.
что мешало назвать функцию sort_lexicographically?
villy villy 03.05.202122:08 ответить ссылка 2.5
ну потому что это стандартная ф-ция для сортировки. "lexicographically" - это частный случай. По сути sort - это ф-ция высшего порядка, которая как раз и принимает определенную пользователем ф-цию для сортировки.
то есть слепили в кучу 2 разные функции и разной семантикой, при этом по дефолту сделали редкий частный случай - это типа нормально?
villy villy 03.05.202122:29 ответить ссылка 2.6
по умолчанию сделан не редкий случай, а единственно возможный. В js у всех объектов гарантировано реализован метод toString.
не единственный.
можно было тупо бросать исключение, что типа сорту нужна лямда, передай ее.
и можно было сделать отдельную функцию на сортировку с преобразованием к строчке.
и не было бы такой фигни.
и можно было бы сделать более нормальные коллекции. массив именно чисел, в котором перекрыть сорт на привычный всем числовой.
и сами числа можно было сделать не такими ёбнутыми, но это уже совсем другая история.

запрограммировали поведения идиота. "мне что-то сказали сделать, а не понял что; сделаю, что умею, авось прокатит"
villy villy 03.05.202123:30 ответить ссылка 0.1
К дизайну языка и у меня есть вопросы. Смешанная парадигма часто путает людей
Половина ф-ций для работы с коллекциями реализована по ссылке, половина по значению. Переодически юзаю js больше 8 лет и каждый раз лезу в доку )
с каких пор идиотский дизайн называется "смешанная парадигма"?
что с чем смешали?
villy villy 04.05.202100:10 ответить ссылка 0.2
Говно с мочой.
ооп с прототипным наследованием и фп
динамическая типизация = криворукие программисты
OlegYch OlegYch 03.05.202123:28 ответить ссылка -1.2
динамическая типизация == криворукие программисты
динамическая типизация === криворукие программисты
Это не динамическая типизация, а слабая типизпция
mordog mordog 04.05.202100:20 ответить ссылка 0.1
Тогда уж типизация тут вообще не при чем - toString и в java есть, а там сильная статическая. Дело не в типизации, а в том, что дизайн языка - говно.
Проблема в том, что в js отсутствует напрочь такое понятие, как тип массива, или тип коллекции. И это выбешивает.
Там нет понятия "массив интов", или "массив строк", всегда "массив хуй знает чего".
Это был просто пример с другой типизацией. Я могу и другой привести: в python тоже любой тип приводится в str, у списков нет типа, но list.sort() все равно забросает тебя исключениями, если типы не согласуются. Так что "массив хуй знает чего" вообще не оправдание для такого поведения. :)
А я и не оправдываю.
Жс парадигма "втихую сделаем что попало" - это пиздец.
там все хуй знает чего
Тогда должны быть функции
sortNum()
sortStr()
sortObj([A,B=>Int] comparator)
А не одна, по умолчанию делающая неинтуитивное приведение типов.
Нет, необходимо создать универсальную функцию, которая будет сортировать согласно принимаемым параметрам... OH SHIT!
Тогда у неё не должно быть неочевидного поведения по умолчанию. Потому что оно нарушает принцип наименьшего удивления.
Проблема именно с этим сортом в том, что иногда он сработает для чисел правильно, а иногда - нет. То есть, легко проебаться при тестировании, но оно тихо, без ошибок, наебнет тебе логику в проде.
В питоне тоже динамическая типизация, но такого блядства нет.
Это не программисты криворукие, это архитекторы кривоногие.

Вот, к примеру, кем надо быть, чтобы в java.util.Date нумеровать месяцы с нуля, а дни - с единицы?

Хорошо хоть с некоторых пор на опасных методах @Deprecated повесили...
java.util.Date полностью задепрекейчен уже лет десять
а до этого все нормальные люди юзали йоду лет десять
Беда в том, что я с ней работал двадцать лет назад :-)))
Прям как обсуждать проезд по 50 копеек.
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
щ V Filter Output
» ["i“, ,,#м,
<- ► Array(5) [
»
"в"].sorti)
II (All 1|£м II cm И И ж И 1
W t ® Ш , W J e* \
; -s Tomasz is building cloudash.dev 1d
^ npm install esllnt-conflg-airbnb
'••'.K r
Q 31 tn 683	5 023 ¿j ‘3’-’1’=
Traceback (most recent call last) File "<pyshell#2>"1 line 1, in <mo •3-T
TypeError: unsupported operand type(s) for 'str' and s ¡ndex.js
JavaScript Moment
1	console log(018 == '018');
2	console log(017 == ‘017');
3
■ Default: node index.js
true
false » 4 in l <- false
Programmer Memes
@iammemeloper
Without a doubt, the best programming language
11:09 PM -Sep28, 2023 121.6K ¡ews
» let l = [1,2,3,4]
<- undefined
» 0 in l <- true
» "0" in l <- true
подробнее»

javascript языки программирования программирование geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор javascript programming languages programming geek

» 4 in l <- false Programmer Memes @iammemeloper Without a doubt, the best programming language 11:09 PM -Sep28, 2023 121.6K ¡ews » let l = [1,2,3,4] <- undefined » 0 in l <- true » "0" in l <- true