Дима
и как же?
switch (true) { case index < 9: return 1 case index < 12: return 8 case index < 15: return 11 default: return 14 }
Sheldhur
можно будет ещё позицию добавить
Дима
Вы загоняетесь
Дима
но это не switch индекса
Ты спросил, я ответил, он будет делать то же что и куча ифов выше
Sheldhur
Дима
Ну как бы да
Костя
так что насчёт связи?
Дима
Но вы всё равно люто загнались
Oleksandr
Ну связь как бы есть
Костя
неужели нету никакой связи между index & position?
Дима
Какие связи вообще))
Sheldhur
лал
Sheldhur
естьже
Дима
Я про то, что вы загнались, а не про то, что связей нет)
Костя
а ещё можно так
Sheldhur
Konstantin
да можно словарь сделать где диапазоны
Konstantin
и пробежаться
Костя
1. создать бинарное дерево, 2. записать в него позициями по ключу минимальных индексов 3. искать ближайший вниз индекс
Konstantin
но это какие-то не очевидные изъёбства
Oleg
Заметте какой баг - изначально 14 в позиции будет только и только тогда, когда индекс равен 15, строго равен. А все примеры дальше это упускают. А ведь может быть кейс что индекс будет иным и тогда позишн будет неравен ничему
Дима
const reducer = num => (acc, val) => num > val ? val : acc const tester = ( num, list ) => list.reduce( reducer( num ) ) const arr = [ 1, 8, 11, 15 ] tester( 10, list ) // => 8
Дима
КАКОЕ К ЧЕРТЯМ БИНАРНОЕ ДЕРЕВО 😂
Konstantin
рамда какая-то)
Дима
рамда какая-то)
Как будто это плохо
Oleg
Как будто это плохо
http://demotiviruy.ru/data/img/973607525.jpg
Oleksandr
Что-то всё только усложняется) Оставлю-ка ифы)
Oleg
Выглядит безумно
Дима
Обычный редюсер-сравнение, безумно?)
Костя
можно попробовать договориться, чтобы добавили в стандарт ecmascript2017 "case a..b"
Oleg
Увы
Дима
Увы
Эту функцию значительно проще понимать и отлаживать, чем монолитный блок сравнений и ифов
Костя
Лучше просто pattern matching пусть сделают и всё)
ага, пусчай ещё нейронку добавят
Дима
Смишно
Дима
Pattern matching это когда в switch просто можно действительно выполнять условия
Дима
И всё
Oleg
Вообще самый правильный вариант тут конечно свичкейс с тру с закидыванием в функцию чтобы юзать ретурн без бриков. А если функция не в тему - тогда просто ифы. Остальные варианты может быть хороши в некоторых случаях, но тут очень императивное такое сравнение чтобы юзать что-то особое.
Oleksandr
Написал так switch (index) { case 15: position = 14; break; case 14: position = 11; break; case 11: position = 8; break; case 8: position = 1; }
Дима
Я не понимаю ,чем тебя смущает примитивная функция с единственной операцией — сравнением и стандартная функциональность es6
Дима
Разве что тем, что её в extJS нету)0
Oleksandr
(цикл for выполняется с декриментом)
Konstantin
extJs кусок говна
Oleg
Началось
Дима
а может то, что es6 далеко не везде?
Ну вот так люди и деградируют
Дима
Когда из-за отсутствия es6 не пользуются базовыми фичами нормального программирования
Дима
Я чот злой сегодня какой-то, сорян
Дима
Закругляюсь
Nikolay
Ну вот так люди и деградируют
Я знаю чувака, который пишет на ангуляре, но практически не знает js :D
Костя
простите, разве речь не о чистом js, без фреймворков, который нормально живёт?
Дима
es6 теперь фреймворк?
Дима
Дожили)
Костя
да блеа
Костя
нет
Oleg
А ведь всё началось с просто else if 😄
Dreamerinnoise
Я чот злой сегодня какой-то, сорян
это тебя асинхронные генераторы так пошатали!
Костя
как можно писать сейчас на es6?
Дима
это тебя асинхронные генераторы так пошатали!
Ну по ходу да)) реально чот дал маху с ними))
Oleg
Вообще я пишу на ES6 на ноде 6.9
Костя
я имею в виду, что просто так это в браузерах работать не будет
Костя
а
Костя
ну так то нода
Oleg
На фронте увы
Костя
или задача как раз к ноде и относится?
Дима
Костя
1.Берёшь babel 2.Пишешь
так я и спрашиваю, как можно без примочек писать клиентский ЖС?
Дима
Без примочек — это в один файл и инклудить руками?
Костя
так, чтобы оно стабильно работало во всём говне, которое сейчас ещё живо, включая какой-то IE10
Дима
Не знаю, тут вроде второе десятилетие 21 века заканчивается
Костя
Без примочек — это в один файл и инклудить руками?
нет, это без компилятора ES6 и без фреймворков на стороне клиента
Костя
не считая реквайр или что там ещё в моде