Ответ про goto

Это бессмысленный длиннопост о программировании с задачей о пользе goto, создан как ответ на комментарий: #comment_79923933


Ставь минус и листай дальше:)


.


.


.


.


.


.


.


.


.


Выдуманная задача: данные полученны с сервера, допустим декодированны из Json.

Нужно получить ассоциативный массив (js-объект) одного отеля в каждом городе с сервисом "проституток", где ключ - имя города, значение - имя отеля. Если в отеле есть сервис "церковная кабинка" - проституток там гарантированно нет. Если в городе нет отелей с проститутками - вместо имени отеля заносится соответствующее сообщение.


Песочница: https://jsfiddle.net/dmcbnpp1/

HTML-страница с кодом: http://pastie.org/10991634


Скриншот в редакторе:

Ответ про goto Программирование, Javascript, Goto, Комментарии, Длиннопост

Результат в Firefox:

Ответ про goto Программирование, Javascript, Goto, Комментарии, Длиннопост
Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

как то так, сразу два способа не юзать гото

https://jsfiddle.net/h6spc2fL/1/


ну и как сказали ранее так никто не делает, такой фильтр на серваке на уровне запроса в бд делается) а никак не клиентом.

раскрыть ветку (8)
1
DELETED
Автор поста оценил этот комментарий
Функция checkServicesInHotel - неплохая.

Но читаемость oneHotelsWithProstitutesInCity - откровенно снизилась.
Плюс используется Object.keys с не самой лучшей поддержкой: https://developer.mozilla.org/ru/docs/Web/JavaScript/Referen...

Под мобильными браузерами вообще все вопросики стоят.


Js я выбрал только из-за "полулярности" и простоты проверки. Механизм меток есть в Java, Js и D - для джавы нужно ставить виртуальную машину, компилировать исходник и по хитрому запускать.

PS: а второй способ какой?

раскрыть ветку (7)
1
Автор поста оценил этот комментарий
Но читаемость oneHotelsWithProstitutesInCity - откровенно снизилась.

как по мне "водопадик" из форов тоже так себе читается:)


ЗЫ: плюс используется Object.keys с не самой лучшей поддержкой:

ну это проблема жопных языков, в нормальных языках список ключей получить не проблема:)


Механизм меток есть в Java, Js и D

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

- для джавы нужно ставить виртуальную машину, компилировать исходник и по хитрому запускать.

забей в гугл "java\D\C++\anything online compiler"


PS: а второй способ какой?

Так их два там, через функции и через while, мне через функции больше нравится, while более громоздкий. Еще через рекурсию можно, но этот метод не для всех:)

раскрыть ветку (6)
1
DELETED
Автор поста оценил этот комментарий
в нормальных языках список ключей получить не проблема:)
В js поддержку для старых браузеров можно прикрутить (на mdn есть код полифила), или написать свой аналог на крайний случай. Если в треде js-ники появятся - может просвятят. Js ругать без толку, так как аналогов пока не предвидится и придётся всё равно писать на нём.
забей в гугл "java\D\C++\anything online compiler"
Я слишком развращён нормальными редакторами кода, для использования онлайновых:)
Так их два там, через функции и через while
По твоей ссылке только способ с while, ты наверное забыл прикрепить)
раскрыть ветку (5)
1
Автор поста оценил этот комментарий
По твоей ссылке только способ с while, ты наверное забыл прикрепить)

вместо вайл подставь метод на подобии checkServicesInHotel который также будет по ифу ретурн делать:)


Js ругать без толку, так как аналогов пока не предвидится и придётся всё равно писать на нём.

Сам js не плохой язык, у него стандарт и его реализация в некоторых браузерах плохая)

Его жидкая типизация позволяет делать некоторые вещи проще, но и она же позволяет по не внимателности отстрелить себе ногу. У всего есть цена:)

раскрыть ветку (4)
1
DELETED
Автор поста оценил этот комментарий

Типизация в js ещё пол-беды - меня больше раздражает ассинхронность.

Стоит вызвать какой-нибудь кроссдоменный или обычный ajax-запрос из метода - и очерёдность выполнения теряет предсказуемость. С моими знаниями js - это настоящий кошмар:)

А на работе, в скором времени, предстоит на js сложную и нетиповую логику писать, к которой ещё и не знаю с какой стороны подступится. Придётся спешно подтягивать знания этого языка на той неделе:)

раскрыть ветку (3)
1
Автор поста оценил этот комментарий
меня больше раздражает ассинхронность.

А зря, это по моему единственное что в нем хорошо сделано:)


опошлили асинхронность люди которые делает калбеки для калбеков калбеков калбеков калбеков калбеков калбеков

А если они узнают что есть механизм промисов, то вообще вакханалия начинается

раскрыть ветку (2)
1
DELETED
Автор поста оценил этот комментарий

До использования промисов, судя по этому нерадостному списку, ещё лет 5, не меньше:)

Либо утяжелять страницы полифилами.

https://developer.mozilla.org/ru/docs/Web/JavaScript/Referen...
http://caniuse.com/#feat=promises

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

у jquery есть объект для промисов

https://api.jquery.com/category/deferred-object/

я его имел ввиду

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку