Anonymous
какой есть способ элегантно перемешать массив вида [1, 2, 3, 4, 5, 6, 7, 8, 9] в [1, 9, 2, 8, 3, 7, 4, 6, 5] ?
javascript function shuffle(a) { for (let i = a.length - 1; i > 0; --i) { const j = Math.floor(Math.random() * (i + 1)); [a[i], a[j]] = [a[j], a[i]]; } return a; }
Nikita
> arr.map((_, i) => arr[i % 2 === 1 ? arr.length - (i + 1) / 2 : i / 2]) [ 1, 9, 2, 8, 3, 7, 4, 6, 5 ]
Anonymous
Так там же не рандом
Может быть, а может и нет и человек просто наугад создал пример. Короче нужны детали
Nikita
Это же был тест на «приметь закономерность» и телепатию, да? Я победил?
Stanislav
не догадался настолько гибко мап применить
Nikita
Телепат 😂
Не, ну задача была описана довольно странно, на одном примере
Denis
JSfiddle - говно
Влад
https://codepen.io/denis_efremov/pen/JzKRXp
Благодарю, за то что уделил своё время, но я так и не понимаю как мне реализовать резервную подгрузку. У меня на странице все изображения с разширением webp, но не все браузеры его поддерживают, по этому хочу добавить несколько исходных файлов для одного изображения
Влад
https://codepen.io/denis_efremov/pen/JzKRXp
для отдельных фото, прописал такую схему <picture> <source type="image/webp" srcset="sunrise.webp"> <source type="image/jpeg" srcset="sunrise.jpg"> <img src="sunrise.jpg" alt="Sunrise Image"> </picture> Но на карточках товара работает такой переключатель https://jsfiddle.net/tgq9xsvb/ А у меня html выстраиваеться следующим образом: https://jsfiddle.net/vqeo2zry/3/ - но в этом варианте не знаю как прописать скрипт
Denis
https://codepen.io/denis_efremov/pen/JzKRXp
Роман
Кто исполльзовал плагин icheck? http://icheck.fronteed.com/ Странная ситуация. При клике на рисованый элемент - реальный лемент не выбирается.
Влад
https://codepen.io/denis_efremov/pen/JzKRXp
В такой схеме: <picture class="main_img"> <img src="https://img-s3.onedio.com/id-59351f8b45ea93224e79e524/rev-0/w-635/listing/f-jpg-webp/s-853db6d00323617671dffdada5ab811e20f57ba9.webp" alt=""> <img src="https://static.1000.menu/img/content/16952/tort-biskvit-shokolad-na-kipyatke_1472929500_0_max.jpg" alt="KlybnichniyRay01 Image"> </picture> работает только переключение между jpg , webp не задействуеться вообще.
Влад
https://codepen.io/denis_efremov/pen/JzKRXp
<source> есть атрибуты для определения типа изображения и инструкций, когда какой тип использовать
Nikita
@maxgraey Вернулся к парсеру, до этого другими делами занимался. У меня он упорно парсит по токенам, и если ему не нравится следующий токен — выдаёт MismatchedTokenException. Такое ощущение, что спарсить другими способами он просто не пытается.
Nikita
Сейчас буду разбираться.
Nikita
Сейчас буду разбираться.
А, блин, я олень. longer_alt.
Nikita
Надо ручками альтернативы указывать.
Anonymous
асм.
раскажи
Anonymous
а ты что парсишь?
Главное чем! @ChALkeR Как тебе вообще с парсер комбинатором работается?
Nikita
Главное чем! @ChALkeR Как тебе вообще с парсер комбинатором работается?
Тот, что на сайте — не очень юзабелен, они в курсе.
Nikita
longer_alt не помог, читаю доки и примеры
Nikita
А так он прикольный и мне нравится, только если я разберусь как с альтернативами работать.
Nikita
То есть у меня есть два похожие токена, но которые нужны в разном контексте.
Nikita
То есть, условно, abc в одном контексте должно быть одним типом, в другом контексте — другим. Типы отличаются допустимыми символами.
Nikita
И парсер его парсит либо как один либо как второй тип (в зависимости от приоритета) везде, несмотря на окружение. И говорит, что это не тот токен, которой ожидается по грамматике.
Nikita
Я могу это решить задавая сложные типы и убрать пересечение простых типов вообще, естественно, но это как-то громоздко.
Nikita
С другой стороны, парсеру так будет проще, а подчистить дерево я потом смогу.
Nikita
То есть задать вместо пересекающихся терминалов непересающиеся (или строго упорядоченные, этого хватит) терминалы, а склеить их в нетерминальные типы с альтернативой.
Nikita
кто нибудь использовал snaka-player? Нужно спарсить манифест без остального функционала, как это сделать?
Nikita
@maxgraey Судя по коду, который я вижу — токенайзер работает независимо от парсера, и никакого перебора там нет дальше.
Nikita
То есть как разбилось на токены так и всё, и разбивка на токены не зависит от грамматики, только от описания токенов.
Nikita
То есть для решения моей проблемы придётся вводить больше типов терминалов (ака токенов), а потом объединять их в нетерминальные типы. Всё правильно?
Anonymous
Nikita
чем?
chevrotain
Anonymous
chevrotain
да, я уже загуглил по longer_alt
Nikita
А, есть вот такая штука: https://github.com/SAP/chevrotain/blob/master/examples/lexer/multi_mode_lexer/multi_mode_lexer.js
Nikita
Хм, можно переключать режимы токенайзера. А ещё можно задавать категории токенов.
Nikita
Кажется, и то и другое решает проблему. Я попробую с категориями.
Syntax Highlight Bot
Syntax Highlight Bot
Syntax Highlight Bot
====================================================
Бодя
Ахах
Камель
Выпадающее меню с помощью чего делают? Html и css?
Nikolai
Выпадающее меню с помощью чего делают? Html и css?
Js or css(относительно с недавних пор)
Sergey
Привет. Есть у кого идеи, почему в этом коде не работает expect.to.throw? http://dpaste.com/1Z4JHK8 Проблемы не возникает, если передавать в исключение аргумент в виде строки, но мне нужно именно числом. Тесты вываливаются в ошибку: AssertionError: expected [Function] to throw 'Error: 404' but 'Error: 404' was thrown
Svyatoslav
new MyException() !== new MyException()
Svyatoslav
В jasmine есть метод toThrowMatching Можно заюзать вот так: expect(() => throw new MyException()).toThrowMatching(e => e instanceof MyException)
Svyatoslav
Посмотри в доках, может у тебя тоже это есть
Sergey
Посмотри в доках, может у тебя тоже это есть
по видимому сравнения со строкой не избежать (из-за того что объекты исключений не равны), сделал вот так, работает по точному совпадению message. http://dpaste.com/34A40CA
Svyatoslav
А так же остальные его параметры, такие как errorCode в твоем случае
Svyatoslav
Sergey
А это не работает?
нет, та же ошибка выдается: ... error including 'Error: MyException 404' but got 'MyException 404' ща опробую вариант с instanceof
Svyatoslav
И все таки лучше intanceof
Sergey
И все таки лучше intanceof
expect(() => {throw new MyException(404)}).to.throw(MyException).that.has.property('code').that.is.equal(404); Вот, нашел что-то вменяемое в документации chai. Но пока не ясно как быть, если надо проверить два свойства сразу. Видимо это разные expect'ы должны быть
Sergey
лямбду похоже нельзя передать, чтобы проверить сразу всё, как в вашем примере с toThrowMatching
Svyatoslav
надо было юзать jasmine
Serabass
мы всё видели
Dmitry
Минутка упого юмора. Извините
Dmitry