Предыдущий: >>1620541 (OP)НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!Для программирования на ХТМЛ https://codepen.io/pen/Для Ноды с консолькой https://repl.it/languages/nodejsДля фреймворков https://codesandbox.io/Залить, задеплоить страничку, сервер, контейнер https://zeit.co/nowАноны, хочу получить советов мудрых, высераю пару предложений и код на скриншоте, а получаю смехуёчки. Как быть?Если рассчитываешь получить дельный ответ, формулируй правильно вопрос:У меня есть проблема\задача (А) %текст-ошибки или задача%. Я пытался решить ее так %кусок-кода-опционально% (Б), у меня не вышло %текст-ошибки%. Я погуглил, почитал документацию и попробовал сделать так %кусок-кода-%(В), но получаю ошибку (Г).Сделай песочницу по ссылкам выше для ясности и удобства. Если никогда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
анон, подскажи такой помент. прилетает объект с полями но они изначально пустые. при срабатывание на ивент change он подставляет нужные значения в ключи. так вот вопрос: как мне добраться до этих ключей при этом не используя вот этот костыльный метод который в ссылке у меня сейчас описан? https://ideone.com/WeuLPY
Сап анонимусы. Хочу вкатиться в фронтенд разработку с последующим вкатом в какой-нибудь модный фреймворк. Посоветуйте годную литературу, мануалы и т.д. С js не знаком, писал свой говнокод в основном на python/golang.
Есть треды с ReactJS-сниками? В общий JS флудить не хочеться, если это не ваше. Но ждать ответа мне влень, поэтому:1. Если React JSX - это компоненты, то получается проект будет состоять только из 1 html и остальных JSX файлов, которые хукаются друг с другом?2. Впердолил JS template, хочу переписать на ReactJS - застопорился на Layout. Какой он в React-e? Это JSX с кучей компонентом, где между хедером, слайдерами и футерами просовываю контент определенной страницы?3. Я нашел фишки с раутингом - React-Router - это часть фреймворка? Накидайте пожалуйста Best practice по проектам на ReactJS, я .NET-чик, в JS-е не силен на уровне интуиции и гугла
>>1629259 (OP)Ваннаби-бэкендер на связиПишу на Рельсах либо на Питоновской Джанге. Встала задача реализовать список из виджетов (один под другим), которые можно перетягивать (drag and drop) и менять местами друг с другом. При этом новый порядок должен сохраниться, даже когда юзер покинет страницу (это уже лежит на бэке)Чем и как мне это реализовать на фронте?
>>1629259 (OP)Подскажите, если у меня на канвасе есть несколько элементов, то кликая по одному из них, я могу получить его id? Или для такого svg используют?
>>1629672Блять, а я-то думал, почему я именно в этом треде отписался!Спс, бро. Теперь все встало на свои места
Кто каким редактором пользуется?алсо сразу называйте зп, чтобы видеть, насколько авторитетный анон вещает
Ананисты, дайте какой-то то костыль для написания красивого ПХП, типа пишем consol($hui); а он нам выводит оформленное содержимое переменной типа если бы мы написали echo '<pre>'; print_r($hui); echo '</pre>' и т.п. Штуку облегчающую и сокращающую написание кода на ПХП как это делает ЖКВЕРИ на ЖАВАСКРИПТ, то есть штуку работающую на готовых функциях я так понимаю
>>1629486> 1. Если React JSX - это компоненты, то получается проект будет состоять только из 1 html и остальных JSX файлов, которые хукаются друг с другом?JSX компоненты в реакте это жс объекты. Проект состоит из одного хтмл файла, в котором должен быть рутовый дом элемент, обычно это див, после чего в этот див и рендерится твоя приложуха.>которые хукаются друг с другом?Структура жсх это обычное дерево, в рутовый компонент импортишь всю свою кашу.>Впердолил JS template, хочу переписать на ReactJS - застопорился на Layout. Какой он в React-e? Это JSX с кучей компонентом, где между хедером, слайдерами и футерами просовываю контент определенной страницы?Хз что это за поток слов, но если ты хочешь добавить реакта на уже существующию странуцу, то просто создай пустой див, в который заинжекти реакт приложуху.>Я нашел фишки с раутингом - React-Router - это часть фреймворка? Это часть экосистемы, для роутинга обычно используется эта либа https://reacttraining.com/react-router/
>>1629667>Чем и как мне это реализовать на фронте? Конечно же реактом!либа для перенести-и-бросить https://github.com/atlassian/react-beautiful-dndНакидал тебе пример оттуда же. Только добавил сохранение в кеше браузера. Строчки 15 и 17. Вместе с/Вместо кеша можно сделать обращение с апи. Чтобы увидеть, что твой список сохранился - перезагрузи страницу.https://codesandbox.io/s/vertical-list-yyft1
Как работать с чанками данных? Банальный пример - фильм. Как это все работает? Как это должно работать? Сколько не искал, толковой инфы, отвечающей на мои вопросы найти не смог.Вот, как думаю я:1. Клиент делает запрос на размер запрашиваемого файла.2. После получения ответа, на клиенте каким-то алгоритмом определяется оптимальный размер каждого чанка, основываясь на полученных данных.3. После этого клиент запрашивает, например, первые 0-1000 байт через Content-Length.4. Сервер ему отсылает эти байты, после чего на клиенте формируется blob, который тут же воспроизводится.5. Далее, в зависимости от текущего положения, клиент выполняет запросы далее 1001-2002 каждые X секунд, пока не достигнет максимального запаса для просмотра, чтобы не перегружать память клиента.6. Если клиент решит в случайное место ткнуть ползунок, то высчитывается выбранный диапазон и все повторяется с 3 шага.Так ли это?Еще интересует, как новые чанки состыковать с предыдущими, которые уже являются blob объектом?А с кэшем как?Блядь, как же это сложно, нахуй...
>>1629751>Как работать с чанками данных? https://nodejs.org/api/stream.html>Банальный пример - фильм.https://webrtc.org/
>>1629755>https://nodejs.org/api/stream.htmlДа про это то понятно. За сторону сервера вопросов пока нет, если я правильно понимаю. Отослать запрашиваемый диапазон байтов не сложно. Сложно понять как это на стороне клиента все должно работать. Как стыковать эти чанки и хранить в кэше, чтобы повторно постоянно не запрашивать одно и тоже, если придется перематывать обратно.
Какой конченый пидорас придумал столь блювотную структуру для ООП подхода? Я один считаю MVC подход максимально уёбищным и вырвиглазным?
>>1629688канвас - пиксельный, в нем нет элементов как таковыхсвд - векторный, в нем у элементов могут быть айди
>>1629713>Штуку облегчающую и сокращающую написание кода на ПХП как это делает ЖКВЕРИ на ЖАВАСКРИПТщито
>>1629861При чем тут вообще плюсы? Блядь, если вы сами не знаете, нахуя хуйню нести такую? Подожду тех, кто знает, а еще лучше, кто писал свой медиа-плеер на js.
>>1629877У меня пока ничего нет. Я продолжаю искать инфу, как это все правильно организовать перед реализацией. Алсо, на сервере я бы просто сделал что-то вроде fs.createReadStream(file).pipe(response).Этот способ, насколько я знаю, в асинхронном режиме передает файл порциями. Но как их правильно обработать в клиенте я хз. Я раньше пытался написать аудио-плеер, но по этой самой причине застопорился, ибо на практике воспроизведение не начинается, пока файл не загрузится полностью.Еще я смотрел как работает youtube/vimeo. Они выполняют запросы постепенно, словно обращаются к файлу. Т.е. такое ощущение, что у них эти все видео хранятся в уже порезаном на части состоянии. Когда смотрел содержимое запросов и ответов, они Content-Range даже не использовали.Пытался их исходники проанализировать, там вообще хер разберешь что в коде происходит после этих вебпаков.
>>1629716спасибо, про поток слов - я нашел web template - https://colorlib.com/wp/template/logis/, захотел его переписать на ReactJS - начал пукориться с компоновкой компонентов. Еще вопрос - насчет Layout - ты написал, что проект это один Html, на него будет 1 компонент - Layout.jsx, в котором будут куча других компонентов? И ты можешь какой ни будь пример не большой скинуть, как это все правильно обустроить? Типо best practice
>>1629881Ну объясни, блять, что ты хочешь на клиенте делать? Чем тебя <video /> не устраивает? https://axel.isouard.fr/blog/2016/05/24/streaming-webm-video-over-html5-with-media-source
>>1629993>Еще вопрос - насчет Layout - ты написал, что проект это один Html, на него будет 1 компонент - Layout.jsx, в котором будут куча других компонентов?Будет index.html в котором будет <div id="app"></div>, реакт в него примаунтит(отрендерит) какой-нибудь App.js в которм ты уже будешь импортировать все свои компонент. Поставить create-react-app и посмотри структуру
>>1629996сын шалавы что ты там пукнул, научить читать весь текст, а не то что тебе хочется в нём видеть
>>1630025это какой то наглый пыхарь который молится на мвк и пытается разобраться в реакте даже не зная что реакт обычно не применяют в мвк говне
>>1629984И то и другое. У стандартных <audio> и <video> нет api, чтобы манипулировать с данными. Я же сказал, что мой способ, когда я пытался с аудио работать, не сработал. У меня файл пока не загрузится полностью, не будет воспроизводиться. Поэтому нужно как-то самому управлять этими данными. Вручную. Что тут, блядь, не ясно?>>1630000Ты тупой?>Как это все работает? Как это должно работать? Сколько не искал, толковой инфы, отвечающей на мои вопросы найти не смог.>Еще интересует, как новые чанки состыковать с предыдущими, которые уже являются blob объектом?>А с кэшем как?>на практике воспроизведение не начинается, пока файл не загрузится полностью.
>>1630057>И то и другое.Старина, хуйней ты маешься. Если не знаешь с чего начать, особенно, когда задача для тебя слишком сложная, то упрости все нахуй. А то какие то чанки, хуянки.Я бы так делал - взял бы видос, порезал бы его на кадры ффмпегом - картинки бы перегнал в base64. На клиенте бы в цикле запрашивал бы куски и рендерил бы их в канвасе. Это если прям кастомный плеер делать. Ну и со звуком бы примерно так же делал. Дальше гугли видео кодеки и занимаешься байтоебством. Но нахуя?Второй вариант, который используют многие плееры - они режут весь видос на куски по 3-5 секунд, после чего в нужный момент запрашивают нужный кусок. И показывают его. Ну и поверх дефолтного видео можно интерфейс замутить.>Как это все работает? Как это должно работать? Сколько не искал, толковой инфы, отвечающей на мои вопросы найти не смог.Хуево искал. Просто это не твой уровень. Ты бы сначала хелоуворлды поделал.>Еще интересует, как новые чанки состыковать с предыдущими, которые уже являются blob объектом?Ты ебанутый со своими чанками. >>А с кэшем как?Да никак. В локалсторейдже, насколько я знаю, всего 5 метров можно сохранить.>на практике воспроизведение не начинается, пока файл не загрузится полностью.Смотри выше про куски по 5 секунд.
Анонсы, я правильно понимаю, что вместо ссанных классов можно использовать и обычный объектассоциативный массив называется в php, то есть вместоclass Hohl { function salo() {console.log("Hellow ЕБАТЬ")}};svinina = new Hohl;svinina.salo();Можно использоваться иvar Hohl = { "salo": "Hello ЕБАТЬ"};Hohl.salo();И считай это одно и тоже?Возможно в коде ошибка, сейчас засосало в php, мог и перепутать, но я так понял в php по этого и дрочат классы, что у них ассоциативный массив не может содержать функции, как это может делать простой объект у нас в JS, я правильно понял или проебался?
>>1630078>Второй вариант, который используют многие плееры - они режут весь видос на куски по 3-5 секунд, после чего в нужный момент запрашивают нужный кусок. И показывают его. Ну и поверх дефолтного видео можно интерфейс замутить.Так мне вот хотя бы это и сделать. Мне просто нужно, чтобы файлы по 50/100+ мегабайт не пытались сначала полностью загрузиться, а уже потом только предоставлять клиенту возможность его слушать.Со стандартными audio/video у меня не работает так, как это надо. Я уже сказал об этом 3 раза.>Да никак. В локалсторейдже, насколько я знаю, всего 5 метров можно сохранить.Под кэшем я подразумевал оперативную память, в которой какое-то время можно хранить относительно много информации.Буду более конкретным. Открываю свой проект, с которым раньше что-то пытался сделать. Вот тут ключевые фрагменты кода. https://jsfiddle.net/mfq8n9ga/В функции sendAudioFile я пытался оперировать с частью данных, устанавливая end в несколько мегабайт, тогда вообще происходит какая-то херня.>многие плееры - они режут весь видос на куски по 3-5 секундТ.е. на сервере файл физически уже в порезанном виде хранится? Или этим постоянно занимается сервер, отправляя данные? Мне это было бы не удобно, ибо сервером является мой пк, на котором я эти файлы использую. Поэтому хочу понять как правильно нужно разбить этот файл на части программно. Как я уже сказал, пытался со start и end оперировать - не вышло.
>>1630057><audio> и <video>>манипулировать с даннымиПотому что они не должны манипулироватьAPI манипулированием данных состоит из буквально пары топ лвл объектов их sourcebuffer mediasource mediameta и т.д, по всем должно быть всё расписано в одной какой-нибудь статьеЕсли ты не осилил сорсы hls/mpeg, крутящие абсолютно несложные материи выше, нахуй ты вообще лезишь?Высрал две строки толкания блоба, еще и каким-то образом всрато вложенные в промисы, а чсв как у байтоеба с 20 летним стажем
>>1630097класс это больше чем просто ассоциативный массив с функциямитак то проблем использовать функцию в объекте нетlet obj = {fn: () => console.log(42)}obj.fn()42класс должен иметь конструктор который создаёт его инстансв джаваскрипте класс это не простой объект - ассоциативный массив, а функцияfunction A(a) {this.a = a}let a = new A(11)console.log(a.a)11
>>1630129>Потому что они не должны манипулироватьПоэтому и хочу разобраться как самому этим управлять. Мне все равно как это будет достигнуто, мне просто, блядь, нужно чтобы файл подгружался частями. Код я скинул, если ты дохуя умный, то объясняй почему это не работает. Нахуя ты пердишь в лужу, еще называя кого-то чсв? Мне вообще похуй, я хочу решить проблему.>Если ты не осилил сорсы hls/mpeg, крутящие абсолютно несложные материи выше, нахуй ты вообще лезишь?Чего, блядь? Что ты несешь вообще? Конечная цель - воспроизвести файл, достигнута. Но то, как это работает на практике, мне не нравится.>Высрал две строки толкания блоба, еще и каким-то образом всрато вложенные в промисыА как их еще вложить, чтобы получить доступ к response.headers.get('content-type') во втором then? Расскажи. В любом случае, от этого ничего не меняется.Вот, блядь. Буквально вся суть местного скама. Когда задают вопросы сложнее того, как разбить строку на подстроки, так сразу цепляются к какой-то хуйне, не могут четко и ясно что-либо сказать по делу. Вместо этого говном покроют, вылив все свои омежкины комплексы. Пиздец. Хррртьфу!
>>1630144Долбаеб я тебе написал sourcebuffer mediasource mediametaAPI уровнем выше придумать просто невозмжноВместо пердежа десятка параграфов мог бы уже догуглить двухстраничную документацию по этому хеллоуворлду
>>1630114>сервером является мой пк, на котором я эти файлы использую. Поэтому хочу понять как правильно нужно разбить этот файл на части программноТы так и не написал. какую задачу решаешь, а мне надоело гадать и задавать наводящие вопросы. Так что или напиши, что собераешься делать или ебись сам с этим.
>>1630152Там поддержка для нужной мне платформы нулевая. Android Firefox. Можно ли с blobами это решить? У меня никаких нет идей, кроме как как-то постоянно пересобирать этот blob при получении нового чанка. Но для этого еще нужно как-то разбить файл на эти чанки на сервере. Как это сделать правильно? Чтобы это работало? Чтобы на клиенте можно было жонглировать ими? Чтобы вот это вот все.>>1630162А что не понятного? Медиа-ресурс для души. Чтобы с телефона можно было получить доступ к гигабайтам личной музыки и послушать ее. Не надо мне облаков никаких предлагать только. Это еще интерес какой-то у меня вызывает.
Я забыл как сделать так, чтобы по дефолту запускался определенный метод, если мы просто запускаем функцию. Пикрелейтед я использую a.inc() и a.dec(), я хочу чтобы при a() автоматически запускался метод inc() в замыкании. В JS учебнике была эта статья, но её выпилили.
Есть аналог стены вк, реализованный на Vue. Есть компонент создания поста и компонент вывода постов. Для ообновления постов после удаления или редактирования создал асинхронный метод, который выполняет GET- запрос, получает список постов и перезаписывает их список в data. Этот метод я передаю в компонент создания поста пропсом и вызываю там после создания. Подключен плагин moment js, но после перезаписывания списка постов дата (минут назад...) не обновляется и остаётся той, что отрисовалась при загрузке страницы. Как можно исправить?
>>1630180хуйню какую-то написал.a - объект. Ты не можешь вызывать объект, как функцию. Никаких "дефолтных методов" у объекта в js нет.
>>1630204>https://axel.isouard.fr/blog/2016/05/24/streaming-webm-video-over-html5-with-media-source>sourcebuffer mediasource>Там поддержка для нужной мне платформы нулевая. Android Firefox.Касаемо <video>/<audio>Я уже сказал много раз, что с ними у меня не работает частичная загрузка файла. Код здесь https://jsfiddle.net/mfq8n9ga/
>>1630358Я оставил ключевую фразу для гуглежа.И знаешь как они хакают? А вот так: https://habr.com/ru/post/429602/Сначала вгружается непреметненький шрифтик...А у него... эммм. ТЬЮРИНГ-ПОЛНОТА!После чего хакаются все системы нахуй, к хуям собачьим!
>>1630360Если знать о тьюринг-полноте шрифтов, то уже не удивляет полнота по Тюрингу документов TeX, что естественно вызывает многие серьёзные и интересные уязвимости в безопасности шрифтов и медиа, такие как BLEND или Linux-эксплоиты SNES и NES. В других форматах вроде PDF просто ужасное количество уязвимостей. Опять же, выдающиеся достижения вроде создания небольшой машины Тьюринга из кубиков «Лего» или домино, не считаются, поскольку нам уже давно известно, как работают механические компьютеры.
>>1629259 (OP)Студент, учусь на айти направлении. Параллельно недавно начал самостоятельно вкатываться в веб разработку, так как нравится. Но чем дальше погружаюсь в тему, тем чаще и больше слышу что-то вроде "вебмакаки не нужны", "вебмакака не программист", "вас всех заменят тильды через 5 лет" и т.д. Очень все это неприятно слышать, учитывая то, что веб разработка мне действительно нравится. Почему создался такой стереотип? Есть ли в этом доля правды? Может, мне стоит идти в другом направлении, пока не поздно? Не хотелось бы.
>>1630380Стадный инстинкт. Не нравится веб - не учи, нравится - учи и программируй. Большинству насрать, на чем ты кодишь. Люди хотят чтобы их слышали, независимо от того, какую чушь они несут.
>>1630360Нихуя не понял, можешь кратко по русски описать что это за хуйня и что из-за неё может случиться?
>>1630380бля анон когда я начинал учить тоже думал что влезаю в говно, не слушай даунов бородатых хадротов, блять, веб правит миром, этого тебе должно быть достаточно, все визги и вяки это от старых аутистов которые до сих пор борятся за каждый бит скорости и нагрузки, что конечно есть хорошо, но никто так делать не будет, все выберу дерьмо которые сжирает всю память на устройстве для своего выполения
>>1630387Мне нравится веб по-настоящему, но я ещё при этом хотел бы иметь валидную профессию, чтобы зарабатывать на этом ближайшие лет 30.
>>1630405Значит ты испытываешь стадный инстинкт и ищешь выбор, который одобрили бы окружающие. Решай сам.
>>1630408В смыслея причем тут стадный инстинкт? Мне похуй, если все будут говорить типа моя профессия не профессия, но я хочу, чтобы на деле она все же была профессией.
>>1630417Так это уязвимость или нет? Чем это грозит яваскрипту? Инъекции на сайт с помощью шрифта в комментариях? Я нихуя не понял
>>1630425Вакансий по жс много, платят хорошо, хх каждый день открываю. Но. Вопрос-то в том, как изменится ситуация через условные 5 лет. Многие пророчат веб разработке смерть. Так ли это?
>>1630236В смысле? На сайте? Или если самому запустить код на своих файлах? Алсо, мне и не подойдет этот способ, даже если он работает, ибо лиса на ведроиде не поддерживает это апи. https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferКод я никакой не писал еще. Завтра попробую. Я пока в бреду, у меня температура высокая и мне хуево, так что пока я особо еще не вникал ни во что, просто собираю информацию поверхостно.
>>1630465Still the salaries are pretty fine, was there anything you wanted to prove with your comment?
Не уверен что пишу в правильный тред. Нужна помощь с заданием https://bitbucket.org/roxot/qa-test-task-request-checker/src/master/ посмотрите, пожалуйста, какой ответ у вас приходит?
Подскажите плз анончики, изучаю JS на практике, пишу юзерскрипт на 1 сайт. Там короче есть 5 блоков, в каждом по 26 других блоков. У всего одинаковые классы, только текст внутри разный. Мне нужно выбрать в 3 отдельных массива определенные блоки для дальнейших манипуляций. У меня получается так, но по моему это лютый говнокодfunction GetBlocks() { const blocks = document.getElementsByClassName('sbs_rigth'); for( let i = 0; i < blocks.length; i++){ const cats = Array.from(blocks.getElementsByClassName('field__impl')); const cat1 = cats.slice(0 ,3); const cat2 = cats.slice(7 ,10); const cat3 = cats.slice(14 ,17); const cat4 = cats.slice(21 ,24); const cats1 = cat1.concat(cat2, cat3, cat4); console.log ('111',cats1);
>>1630632>только текст внутри разныйconst blocks = [...document.querySelectorAll('.field__impl')];function findBlock(text, blocks) { return blocks.find(e => e.textContent.includes(text))}const resultArray = ['Текст из блока1', 'Текст из блока2', 'Текст из блока3', 'Текст из блока4', 'Текст из блока5'].map(e => findBlock(e, blocks));
Кидайте свои результаты с triplebyte. Уезжаем работать в америку.inb4 Квиз можно пройти три раза (не только фронт). Вопросы вполне дефолтные, но я растерялся из-за таймеров и где-то четверть точно накосячил, остальные точно не знал (там есть теоретические вопросы)
>>1630649PS как же я ору с того что мне советуют фронт, при том что я проходил квиз на фронт и в то же время мой результат по фронту в их графе самый слабый.
>>1630643Судя по консоли, твой вариант только из первого блока "sbs_rigth" вытягивает '.field__impl' с найденным текстом, а мне нужно из всех 5.
>>1630653>document.querySelectorAll('.field__impl')Здесь поиск по всему документу. Поиск по .sbs_rigth вообще не нужен. Так что либо .field__impl есть только в первом блоке, либо ты что-то сломал в этом коде.
>>1630649>Уезжаем работать в америку.А кто же страну поднимать с колен будет, так и останется в руках воров и мошенников
>>1630654>.field__impl есть только в первом блокеНе, эти блоки везде одинаковые. Не думаю, что это имеет значение, но текст не непосредственно в них, а в Span через несколько потомков div. Просто мне нужно обращаться именно к ним.Я твой синтаксис не до конца понимаю, стрелочный еще не изучал.
>>1630665Скинь структуру на codepen или jsfiddle. >но текст не непосредственно в них, а в Span через несколько потомков divМеняешь на return blocks.find(e => e.textContent.includes(text).closest('.field__impl'))
>>1630667Хотя нет, не меняешь, хуйню написал. Он и так должен найти .field__impl с нужным текстом внутри (в том чсиле и во ложенных в него блоках), но вернет .field__impl .
>>1630671Да, и смена ошибку выдает "не функция". Может тут цикла не хватает, чтоб по всем полям пройтись?
>>1630673Прост я писал похожую функцию, но отказался, поскольку ее надо вызывать много раз для каждого слова. Вот она возвращает все элемы с нужным свойством из всех 5 разделов.function get_elements_by_inner(word) { var res = [] var elemst = [...document.getElementsByClassName('field__impl')]; elemst.forEach((elem) => { if(elem.outerHTML.includes(word)) { res.push(elem) } }) return(res)}
>>1630675Я думал, у тебя блоки уникальные, то есть одно слово - один блок.Вот, если нужно найти блоки с повторяющимися словами. const blocks = [...document.querySelectorAll('.field__impl')];const words = ['Текст1', 'Текст2', 'Текст3', 'Текст4', 'Текст5'];const result = blocks.filter(block => words.some(word => block.textContent.includes(word)));
>>1630679Супер, работает. Спасибо, дружище.Мда, конечно стрелочные функции сильно отличаются, хрен разберешь че происходит вообще. Надо курить мануалы.
>>1630682тут в стрелочных функциях аргументы и что вернуть. Хз что тебя тут смутило. Это наверное то, что проходят на первом занятии оффлайн курсов уже. И еще, я тебя не хочу никак обидеть и если ты это делаешь для себя (реально для себя), то играйся на здоровье. Но если ты это потом хочешь где-то показать, то лучше остановись. Потому что эти поиски по селекторам уже никому не нужны, кроме самих фреймворков.
>>1630687>проходят на первом занятии оффлайн курсовЯ не был даже онлайн. Лет 6 назад изучал PHP пару месяцев, потом забил. А щас вот понадобилось дизайн на одном сайте под себя сделать, вот и полез в JS. Дней 5 только изучаю.
>>1630687Прост классический синтаксис похож на php, поэтому мне более понятен. Хотя хз че там щас уже.
>>1629327Ну тащемта есть 3 фреймворка.1. Реакт - говно редкостное, но везде нужно.2. Вью - шикарная вещь, но нигде не нужно.3. Ангуляр - говно редкостное и нигде не нужно. Выбирай 1 или 2.
>>1630744А чем вью лучше? Постоянно нужно работать в двух контекстах - вьюшная магия и js, не лучше ли что бы всё было js?
>>1630748Ебаное говно для индусов неосиливающих что-то сложнее темплейтовВзлетело только благодаря количество этих самых дегенератов
>>1630748> лучше ли что бы всё было jsЛучше. На самом деле, ничего лучше нового JS без фреймворков и всяких жикуери/страпон нет. Во вьюхе всё удобно и искаробки. Пиздец какой удобный менеджмент стэйта через вьюх. Очень пиздатый роутер без ебли. Да и вообще хорошо когда фреймворк это фреймворк. >>1630750Ну да, всё так. А что такого
анон, имеется вот такая хуйня. подскажи как мне добраться до quote чтобы я мог например обратиться к quote.title?
>>1630809quote.title в этом объекте не существуетесть например obj.quote.tariff_137_0.title (если твой объект называется obj)ты можешь получить все ключи с помощью let keys = Object.keys(obj.quote) и подставить ключ потом obj.quote[keys[0]].title например
>>1630817только так? тут просто до меня в коде висела хуйня в виде:_.each(obj.quote, function(quote) { alert(quote.title) }поэтому думал может что полегче есть чтобы я мог обратиться только к тому где тариф_137 не используя этот ебучий цикл
Антоны, есть блок на сайте где крутятся видеролики, в некоторых из них есть звук, можно как-то с помощью JS заблокировать звук в нужном блоке, а не на всём сайте?
Так, волшебники, спасибо, вы в прошлый раз здорово помогли мне, но мне снова нужна ваша помощь, пожалуйста.Непроходимо реализовать функцию clone, которая будет работать следующим образом:let arr = [1,2,3,4,5,6];let brr = clone(arr);console.log(brr); // [1,2,3,4,5,6]brr[0] = 42;console.log(brr); // [42,2,3,4,5,6]console.log(arr); // [1,2,3,4,5,6]всякими слайсами пользоваться нельзя, только циклы. У меня получается хуйня, и возвращает два массива уже с изменением (Да, я понял что это просто ссылка на оригинальный массив и перемены происходят и в оригинале, но как это бойти?)
>>1631084Ты ебанутый?const clone = arr => {let new = [];while(let i = 0 < arr.length -1)new = arr;return new;}
>>1631049>for ( let tarif in quote ) пипец хак какой-то, ключи по in выдает как для массивов, а значения по of не даёт, пишет не может интегрировать объект
Есть плагин v-tooltip, и стрелочка в нём выполнена через border-width, из-за чего не получается сделать ей белый фон и рамку как у блока.Пытался сделать через box-shadow, но треугольник не обрезается, так что тень прямоугольная (скрин 1)Если сделать border-color, то треугольник закрашивается (пик 2)Как можно сделать ему border и белый фон?Стили для треугольника:.tooltip-arrow width: 0 height: 0 border-style: solid position: absolute margin: 5px border-color: #fff z-index: 1 box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.12)
Почему в реакте в объявлении переменной используются const, а не var? Ведь const - это же constanta... Что за хуйня?
>>1630679Слушай, если ты еще тут, можешь еще подсказать. Если я, допустим, хочу превратить твой код в функцию, которой буду передавать массив слов для поиска, а она будет возвращать все содержащие слова блоки, что мне туда добавить нужно? Чет вообще не раздуплю эти стрелочные функции. Или если не трудно, мог бы ты переписать эту функцию под классический синтаксис, чтобы я мог сравнить и разобраться сам.function getCats(){ const blocks = [...document.querySelectorAll('.field__impl')]; const wordsCat1 = ['Авто', 'Бизнес', 'Дом', 'Кино', 'Книги', 'Мистика', 'Развлечения', 'Спорт', 'Стиль']; const cat1 = blocks.filter(block => wordsCat1.some(word => block.textContent.includes(word))); for( let i = 0; i < cat1.length; i++){ cat1.style.background = '#4dd0e1'; }}
>>1631181const wordsCat1 = ['Авто', 'Бизнес', 'Дом', 'Кино', 'Книги', 'Мистика', 'Развлечения', 'Спорт', 'Стиль'];function getCats(words) { const blocks = [...document.querySelectorAll('.field__impl')]; return blocks.filter(block => words.some(word => block.textContent.includes(word)));}getCats(wordsCat1).forEach(e => e.style.background = '#4dd0e1')
>>1629259 (OP)Будучи онли реакт-макакой я однажды задумался, а в каких ситуациях я буду юзать вью вместо реакта? Когда меня спросят на собесе, почему вы не учили другие фреймворки, нужно сказать что-то умное, нельзя же сказать, что я выбрал реакт ради денег, потому что в фронтенд-треде на дваче так посоветовали.
>>1631256Но я не работаю ради денег и разбираюсь в каждом аспекте своей работы, посвещая ей каждую минуту своего свободного времени и даже выходные дни, ведь я большой профессионал. таков мой образ
>>1631254Просто не посылай резюме на вакансии где нужны другие фремворки это вообще показатель ебанутой конторы, которая обмазывается любым говном после обезьян - в нормальных местах есть устаканившийся стек/подход на котором все делается
>>1631178Переменные нужны гораздо реже, чем их используют >>1630097 >>1630675 А если действительно нужна переменная, то она нужна в ограниченном контексте, по-этому использовать надо let. Глобальные объекты в общем случае не нужны, а значит и var не нужен.
Чем черевато создание переменной без var let и const? Если ты 100% создаёшь для неё уникальное название и она не нужна тебе как локальная в функции, всегда пишу просто a=1;console.log(a);
>>1631428Твой код и тебябудут считать говном все, кому придётся с ним работать после тебя. С ним не удобно работать.
>>1631428>Если ты 100% создаёшь для неё уникальное названиеНу да, легко так говорить, когда ничего длиннее 20-ти строк не писал. Когда у тебя полноценное предложение, то ты ни в чём на 100% не уверен. Ну а в 20-ти строках так будут писать только дебилы, потому что они не понимают, что это рано или поздно войдет в привычку и они где-нибудь в крупном проекте ёбнут своё a = 1; и наебнут весь код.
>>1631438Да, не дописал что пишу только для себя, я не жс пхп макака сидящая на зарплате, учитывая то что на других похуй, чем чревато объявлять переменную без var let const>>1631448В своих подделках конечно же, делаю их только для личного пользования, допиливаю то что другие обмутки создавая сайты допилить не в состоянии или не хватило мозгов>>1631451Берём идеальный случай, что все названия уникальны, нахуй вообще задавать видимость переменной, если она тебе нужна просто как переменная, учитывая это можно же так писать не ебясь с var let const? У меня например как минимум ад перфикциониста когда ты пишешь код в 1 строку и у тебя в коде единсвенный пробел это когда ты объявляешь ебучую переменную, все остальные пробелы у тебя просто улетают при сжатии
>>1631464Так делать нельзя, есть строгий режим в котором будет ошибка. Такая переменная становится глобальной (т.е. объявляется через var по сути) и всплывает, где ее не объяви. Глобальные переменные не нужны. >ад перфикциониста>когда ты пишешь код реально ад
>>1631464>Берём идеальный случайИ какой смысл обсуждения сферических коней в вакууме? >ад перфикционистаВ голос. Ад перфекциониста это как раз хуйня вида:а=1;перфекционист пишет:let a = 1;
>>1631475Нет, ад это вот это<script>var a=1;let b=2;const c=3;console.log(a+b+c);</script>Нигде блять нет пробела, и только инвалидское объявление переменных их добавляет, нужно сделать как в пхп $a=1, будет охуенно>>1631474Да и насрать что она становится глобальной, имя же у неё уникальное, её никто не тронет кроме тебя, берём в расчёт только личное пользование, конечно сидя на бутылкезарплате жс макаки ты будешь писать всё отдельно в новой строке, но для себя ты будешь это всё максимально сжимать после написания, чтобы ни 1 макака не пазарилась на твой код, и поебать что переменные глобальные, если они тебе ненужны для какой-то функции внутри, памяти она не сожрёт и проц твой от этого не нагрузит, ПО Е БАТЬ
>>1631500>чтобы ни 1 макака не пазарилась на твой кодШизик, успокойся, уже давно придумали инструменты, которые сами добавят нужные отступы.
>>1631500Зачем в скрипте что-писать, если это для стороннего сайта? Есть же всякие тамперманки и прочие дополнения.
>>1631530Если кода мало, зачем источники?https://universal-play.glitch.me змей рисовать можно в одном файле.
>>1631547Чтобы всё было аккуратно и тебе не надо было грузить весь html файл для исправления 1 строки.
>>1631546user ~$ node> (function(){var a=1})()undefined> console.log(a)ReferenceError: a is not defined>
>>1631573>Разговор был про объявление без ключевого слова.Не знаю с кем ты там в своей голове разговаривал, но писал ты следующее:>Такая переменная становится глобальной (т.е. объявляется через var по сути)
>>1631582Написано, что переменная без ключевого слова объявляется как через var (в противовес как через let или const) и всплывает. А теперь покажи где написано, что var всплывает из функции.
Аноны, подскажите. Делаю тудушку на ТС + реакт, хочу мапом делать элементы списка. Передаю как обычно <ListElem info={elem} />, но ловлю ошибку Type '{ elem: ITodo; key: number; }' is not assignable to type 'IntrinsicAttributes & titleInfo & { children?: ReactNode; }'. Нигде не могу найти расшифровку. Что это значит?
>>1631582А ты писал, что я (другой анон) путаю функцию и IIFE. Но и то, и другое, что с var, что без, работает одинаково.
Подскажите, в чем ошибка? Суть такая, на странице 5 разделов, в каждом по 26 блоков. Я выдернул из всех 5 разделов нужные блоки (они идут не по порядку), их возвращает функция getCats(1) (там 5 разделов с 9 потомками в каждом). Следом, я обернул все 26 блоков в каждом из 5 основных во wrap1 и теперь мне нужно каждые 9 блоков из getCats(1) переместить в wrap1 во всех 5 разделах. Проще говоря, мне нужно выдернутые блоки сгруппировать во врапперы.Но с этой функцией получается так, что всё из getCats(1); перемещается в последний враппер на странице, а не в каждый. function createBlocks(){ const cont = document.querySelectorAll('.wrap1'); const elem = getCats(1); for (var i = 0; i < cont.length; i ++) { for (var j = 0; j < elem.length; j ++) { cont.appendChild(elem[j]); } }}
>>1631586Но она не объявляется как через var, сычуш, без ключевого слова она попадает в глобал скоуп. Ты же говорил, что между не объявлением и объявлением через var нет разницы, за что тебя закономерно окунули головой в собственное дерьмо.>>1631594Ну и? От этого IIFE функцией не становится.
>>1631523>Пыхер>ШизикОткуда вы меня знаете>>1631543Кстати, а расширения для браузер - это же тот же js файл да? То есть можно взять любое расширение, удалять там всю анальную гебню следящую за тобой и переделать как тебе удобно само расширение?>>1631530Обезьянка, открой любой более вменяемый сайт, сейчас всё пишут в самом коде html для ускорения загрузки и уменьшения количества запросов при загрузке страницы, даже css стили все стали писать прямо в коде html и только общие стилли в файле, как и js код, если он исполняется только на 1 странице, нахуй мне помещать его в файл чтобы даже на микросекунды задерживать его выполение тварь
>>1631604>Но она не объявляется как через var, сычуш>без ключевого слова она попадает в глобал скоупСтрашная тайна, но все Var тоже попадают в глобал скоуп и становятся свойствами глобального объета, как и без ключевого слова вообще. В это и была суть сообщения, что как var, но не как let/const>Ты же говорил, что между не объявлением и объявлением через var нет разницы>переменная становится глобальной (т.е. объявляется через var по сути) и всплывает, где ее не объявиУ тебя дислексия или ты просто долбоеб?
>>1631608>Страшная тайна, но все Var тоже попадают в глобал скоуп и становятся свойствами глобального объета, как и без ключевого слова вообще.Тогда почему ты обосрался и не смог прочитать переменную объявленную в функции через var, но смог это сделал с переменной объявленной без ключевого слова? Ты троллить пытаешься или правда тупой?
Ананисты, а подскажите хороший ноутбук для ныряния в говна программирования с максимальным удобством, лёжа и попёрживая на диванчике или копая картошку у бабушки в деревне, чтобы лёгкий, красивый, с хорошим экраном и виндой, желательно не 10, а может даже и на линуксе, но чтобы это был не пидоромак, бюджет 40-50к думаю можно будет осилять, ну и кинцо шобы тоже тянул
>>1631610Ладно, здесь я обосрался. Ключевая суть была про разницу с let/const.А ты обосрался с самого начала
>>1631615Нет, выше уже на примерах показано. >>1631621Так я тебе сразу об этом сказал, а ты безуспешно начал пытаться перекладывать дерьмо из своих штанишек в мои.
>>1631624Ты сказал про объявление через var, ответ был про объявление без ключевого слова. Разницу находишь?
>>163161140-50к это только для фильмов и браузера. Для программирования нужен мощный, как минимум за 70к, если прям сейчас брать будешь, если будешь ждать, то уже за 85к придется брать с нынешним курсом. Программирование это IDE и несколько открытых проектов, несколько вкладок браузера, виртуалка, локальный сервер. Всё это требует как минимум 16 гб оперативки.
>>1631626Какой ответ, поехавший? Я отвечал на это:>Такая переменная становится глобальной (т.е. объявляется через var по сути)Указывая на то, что объявление с var и вообще без ключевого слова не являются одинаковыми.
>>1631624>>1631626Девчёнки не ссорьтесь, я всё равно будут писать без var let и const, потому что разницы нихуя, а с ними пусть пишут местные макаки дрочащие блокнот за гривны и доширак
>>1631635А там в конце написано "ой, нет, я ошибся, это не одно и тоже"? Если нет, то я дочитал до конца и ничего не обрезал.
>>1631646Ну если у тебя проблемы с чтением, то я вряд ли смогу дочитать за тебя и собрать мысль воедино.
>>1631643Если из 1 модели конечно мощнее, +4 виртуальных потока ебатьКороче нужен ноут на подобии мака но не мак, то есть крепкий может даже алюминиевый и стильный чтобы не блевать при его виде и не охуевать как он скрепит или звучит при постукивании как дешёвый китайский пластик, ну и матрица чтобы не выжигала глаза засветами и разной картинкой при малейшем отклонении в строну
>>1631474>Такая переменная...Здесь речь про переменную без ключевого словаиз поста >>1631464>>1631489>Если в рамках функции, то она не будет глобальной. Теперь скажи в каком месте ты писал про переменную с var?
>>1631657>Теперь скажи в каком месте ты писал про переменную с var?Это подразумевается исходя из цитируемого поста.
Да нахуй этот сраный var. Как мне заюзать SIMD в браузере? Без него от всяких JIT и типизированных массивчиков толку нет, скорость все равно в 4/8/16 раз ниже.
>>1631667>Такая переменная...>Если в рамках функции, то она не будет глобальной.>Если в рамках функции, то объявленная через var не будет глобальной.Да-да, обтекай дальше.
>>1631600Если уж очень хочется использовать циклы, хотя бы for of используй, а не это.В коде ты проходишь циклом по cont. В каждой итерации ты перетаскиваешь в cont элементы elem. То есть ты несколько раз раз перетаскиваешь элементы туда, где они уже и лежат (после первой итерации).А зачем?
>>1631670>Такая переменная становится глобальной (т.е. объявляется через var по сути) и всплывает, где ее не объяви.>Если в рамках функции, то она не будет глобальной.Так ты к посту добавляй, что у тебя IQ < 80, тогда тебе будут в развернутом виде всё писать, без надежды на то, что ты сам найдешь то место, в котором проебался.
>>1631689То есть я отрицаю, что объявленная переменная без ключевого слова, объявляется через var по сути.
>>1631633>я всё равно будут писать без var let и const, потому что разницы нихуяСмысл в том, что практически невозможна ситуация, когда говнокод-1.0 присваивает значение глобальной A, потом говнокод-2 присваивает значение глобальной А, потом говнокод-1.1 пытается использовать значение А из говнокода 1.0. Потому это и работает.
>>1631701Сейчас уже другое отрицаешь. Маневры продолжаются. Она становится глобальной и по сути объявляется как var.Сначала глобальной, потом как var (а не как let/const, в чем и суть).
>>1631708>(т.е. объявляется через var по сути) Тови слова, которые я и отрицаю. Когда это стало другим?
>>1631679>А зачем?Циклы не обязательны. Но в cont же содержатся 5 блоков на странице, в каждый из которых мне нужно запихать элементы из elem. Как это сделать иначе?
>>1631732Вот так получается, но чет по моему сильно костыльноfunction createBlocks(){ const cont = document.querySelectorAll('.wrap1'); const elem = getCats(1); console.log(elem); const elem1 = elem.slice(0, 9); const elem2 = elem.slice(9, 18); for (let i = 0; i < elem1.length; i ++) { cont[0].appendChild(elem1); } for (let i = 0; i < elem2.length; i ++) { cont[1].appendChild(elem2); }}
>>1631740>for (let i = 0; i < elem1.length; i ++) {>cont[0].appendChild(elem1);Зачем ты один элемент (cont[0]) перекладываешь elem1.length раз в elem1?>for (let i = 0; i < elem2.length; i ++) {>cont[1].appendChild(elem2);Зачем ты один элемент (cont[1]) перекладываешь elem2.length раз в elem1?Без циклов такой путаницы не было бы.
>>1631764Ну так у меня массив из 5 блоков в cont, в каждый блок мне нужно положить определенное кол-во элементов из массива elem. Как иначе это сделать? Я же это и спрашиваю.
>>1631776Ты один и тот же блок пытаешься положить в другой, а не несколько блоков. appendChild вырезает блок и текущего места и кладет в другое, ты делаешь это несколько раз подряд, то есть просто вырезаешь его из блока и кладешь в тот же блок. elem1 elem2 может быть нужны?Слайсы еще эти зачем-то. Наверняка это все можно в одну строчку запилить. Просто непонятно, что нужно.
>>1631800По этой же причине и у меня их нет лулКороч суть в том, что мне в 5 cont надо переместить каждые 9 элементов из elem. Первый cont - первые 9 из elem, и т.д.
>>1631802Чет мне кажется там можно переместить все куда надо сразу без лишних выдергиваний, без этого: >Я выдернул из всех 5 разделов нужные блоки (они идут не по порядку), их возвращает функция getCats(1) (там 5 разделов с 9 потомками в каждом).То есть сразу взять блоки из документа и положить куда надо.
>>1631805Эти блоки выбираются по тексту внутри. Потому что на странице они идут по порядку с одинаковыми классами во всех 5 разделах, типа 123456789... А мне нужно типа 123 и 789 обернуть враппером в каждом разделе, а потом так же 456 и 10-11-12
>>1631808Ну так находи сразу и оборачивай, зачем вырезать, вставлять?Да и оборачивать наверняка не обязательно - меняй текущие на лету или просто стили добавляй каждому.
>>1631809>Ну так находи сразу и оборачивайНу так я и нашел, их функция уже вытащила, проблема то не в этом бля.>Да и оборачивать наверняка не обязательноОбязательно. Стили я уже и так поменял, но мне нужно сделать типа блок для фокуса по хоткею, где будут еще 9 блоков с выбором инпутов по хоткеям
>>1631808Если они всегда по порядку, можешь сразу найти через .querySelectorAll(.class:nth-child())>>1631813Ну так если все работает, все заебись.
>>1631818>если все работаетДа не работает нихрена. Работает только первая версия с тонной текста только для одного блока из 3.Пробую вот так, все правильно оборачивается, но все блоки, которые функция getCats вытащила, вываливаются в последний враппер, вместо каждого блядь. Заебался уже.
>>1631820Код забылfunction createBlocks(){ const cont = document.querySelectorAll('.wrap1'); let wrapper = null; [...getCats(1)].forEach((el, i) => { if (i % 9 === 0) { wrapper = document.createElement('div') wrapper.className = "wrap"; for (let i = 0; i < cont.length; i ++) { cont.appendChild(wrapper) } } wrapper.appendChild(el) })}
>>1631178через const удобно обозначать массивы и объекты, которые сохраняют ссылку на объект но меняют содержание, чтобы случайно их не перезаписать саму ссылку
>>1631821Я просто не догоняю, что ты хочешь. >на странице 5 разделов, в каждом по 26 блоков. >Я выдернул из всех 5 разделов нужные блоки (они идут не по порядку), их возвращает функция getCats(1) (там 5 разделов с 9 потомками в каждом). >я обернул все 26 блоков в каждом из 5 основных во wrap1 и теперь мне нужно каждые 9 блоков из getCats(1) переместить в wrap1 во всех 5 разделах. Так если ты врапнул 26 блоков, то те самые из getCats(1) уже внутри врапера, они же одни из 26-ти. Как я понял твою структуру: https://jsfiddle.net/oh8ckun0/Какой результат должен быть после всех преобразований? Хотя бы в пейнте нарисуй.
>>1631828>Как я понял твою структуруТак есть сейчас, да. А надо так. Но вот эти блоки, что во врапперах, уже поделены на 3 группы в 5 секциях функцией getCats(1), где цифра - номер группы. Мне нужно только их врапперами обернуть. Чтобы в каждой секции были врапперы 1-2-3, а в них как на картинке.
>>1631831Стало только хуже. Лол. Тебе нужно копировать блоки, чтоле? По два раза странице - в обычном месте и в новых-блоках врапперах?
>>1631828https://jsfiddle.net/mc537agz/Вот мой текущий код. Он полностью решает эту задау. Но он пиздец уродский и длинный. Я уверен можно это сделать проще, но чет не получается.
>>1631832>Тебе нужно копировать блоки, чтоле?Нет, создать по 3 враппера в каждой из 5 секций и в них перетащить блоки по очередности как на скрине. По умолчанию как у тебя в коде, все блоки идут по порядку от 1 до 29 в каждой из 5 секций.
>>1631606>Обезьянка, открой любой более вменяемый сайт, сейчас всё пишут в самом коде html для ускорения загрузки и уменьшения количества запросов при загрузке страницы, даже css стили все стали писать прямо в коде html и только общие стилли в файле, как и js код, если он исполняется только на 1 странице, нахуй мне помещать его в файл чтобы даже на микросекунды задерживать его выполение тварьЕбать давно я так не смеялся.
>>1631834Мне кажется нужно делать куда проще. Делаешь массив из трех подмассивов. В каждом подмассиве наборы слов для нужного враппера (я так понимаю). Потом приходишься по >Суть такая, на странице 5 разделов, в каждом по 26 блоков. каждому из этих пяти разделов. Если блок содержит слово, которое есть в массиве, перемещаешь его во враппер с номером, как и индекс подмассива (три враппера - три подмассива).
>>1631846> В каждом подмассиве наборы слов для нужного враппера (я так понимаю). Или лучше индексы, по которым они находятся в списке в своем разделе (если, конечно, не изменяются и одинаковы для разделов).
>>1631842И почитай рекомендации здлесь хуйло тупое украинское https://search.google.com/test/mobile-friendly?hl=ru
>>1631611В ноутбуках выбирать особо не из чего. За 40к можно взять ноут на ryzen 5, без установленной винды, ( - 8к к цене ) и накатить туда линукс, ну и плашку докупить оперативы. Экран IPS без вариантов.
>>1631611>но чтобы это был не пидоромак, бюджет 40-50кМожно подумать ты на эти копейки мак купить бы мог лул
>>1631948>>1631952>А на какую фирму опиратьсяasus, acer, лучше по отзывам смотреть, т.к. у каждой модели есть косяки, у одной звук говно, у другой вентилятор шумит и т.п. и уже выбирать под себя.>мак>MacBook Pro 13 за 109к, 13 дюймов экран, 8 гб, 128 ssd, i5. Видимо маки тащат из за мертвого рынка ноутов и лгбт сообщества.
Какие темы нужно перепройти чтобы понять как пройти по свойства свойств объекта? Уже часа три сижу и втупляю, всё про объекты перечитал у кантора. по доке тоже лазил
Аноны, я когда делаю формочки всякие для редактирования данных в модалке - юзаю буфер-переменнкю. И чтобы копировать обькт в этот буфер делаю жсон.парсе.жсон.стрингифай. Может это не правильно? есть способы лучше? Подскажите, пожаоуйста. А то я сам проект пилю - не у кого спросить.
>>1632006Я не спец в жс, но я бы создал функцию с циклом(let key in object) и вызывал ее в самой себе. Если я правильно понял что тебе нужно
>>1632009это ок способ для того что нормально стрингифается (функция в объекте не пойдет)а так напиши свою дип копи
Поясните что за магия происходит в этой строке:const io = require("socket.io")(server);я понимаю что io становится экземпляром socket.io, но что блядь там делает сервер в скобочках?
Амперсанты, как лучше хранить данные в локалсторейдж для хранения например добавленных в избранное материалов пользователями сайта, в объекте где будет уник айди и спаршеный с помощью джейсонстрингфай в строку? Ну а как тогда хранить там не только айди и ссылку на матераил, а например и его название, картинку, количество комментариев и т.п., понятно что в виде значения задавать каждому айди обычный массив, но как тогда сортировать его по нужным парраметрам, потому что парсинг в джейсон сортирует его по айди, то есть вида{123:[название1, ссылка1, картинка1, комментарии 10, тд.],124:[название2, ссылка2, картинка2, комментарии 20, тд.]}Как эту лабуду отсортировать по названию, то есть по 1 элементу в массиве каждого объекта
>>1632034Мне нужно циклом проходить по всем свойствам и свойствам свойств до бесконечности, пока свойство в свойстве есть. Сколько попыток делал - не получается. let obj = <твой объект>;while (obj !== null) { console.log(obj.value); obj = obj.next;}Даже вот этот пример не помог. Хоть и тут понятно, что после каждого выполнения перезаписывает на следующий next и показывает егоЕще загвостка в том, что у свойств нет имен, ну они в " " кавычках и на русском языке, хотелось бы самому решить и получить какой-то прогресс, не хочется проигрывать..
>>1632057Рекурсия. >Еще загвостка в том, что у свойств нет имен, ну они в " " кавычках и на русском языке, хотелось бы самому решить и получить какой-то прогресс, не хочется проигрывать..object['пидор']
>>1632043ну вот смотрит получится {11: {title3: "title", desc2: "description"},22: {title2: "title", desc1: "description"},33: {title1: "title", desc3: "description"}}А если я начнут всё это выводить на станицу, то они выведутся по очереди, как есть, то есть 11, 22, 33, то есть по айди, а как отсортировать этот объект в объекте, чтобы он перед выводом, отсортировался по названию, то есть так{33: {title1: "title", desc3: "description"},22: {title2: "title", desc1: "description"},11: {title3: "title", desc2: "description"}}
>>1632072https://basicweb.ru/javascript/js_array_sort.phpЧёто я запутался, можешь пример из этого сделать, я так понимаю сперва нужно будет этот объект обернуть в квадратные скобки, то естьvar material = [{11: {title: "title3", desc: "description2"},22: {title: "title2", desc: "description1"},33: {title: "title1", desc: "description3"}}]а дальшеmaterial.sort(( a, b ) => a.title> b.title)Так? А если у нас значений больше, то есть помимо тайтл и дескрипшин есть ещё значения, то код будет таким же?
анон пытаюсь сделать автокомплит с селектом таким способом https://ideone.com/ITv4TX . в результате чего выпадает нужный мне список, и при клике на него он вставляет то что мне нужно в input. но проблема вся в том что его вставляет как то по ебаному чтоли, из за чего при перезагрузке страницы у меня висят те буквы которые я вводил, а не то что я выбрал. как фиксить то?
>>1632163Я хуй знает о чём ты, я о том что нахуй мне объявлять постоянно переменные с помощью var let const, если я могу делать это так a=1, и весь код могу писать просто в строку, прямо в хтмл, нахуй мне это выводить в отдельны файл, если этот код срабатывает только на 1 странице, и повторю для долбаёба, я не работаю в конторе, скрипты пишу для себя, так что все имена у переменных 1000500% уникальны и поебать что они будут глобальными, АБСОЛЮТНО
>>1632071японский бог. Вы хотя бы читайте доку, которую можно за день пролистать. Нужно пройтись по ключам и создать массив. Затем его отсортировать, как тебе нужно. https://repl.it/@CharonIV/ObjectВот я на пальцах все показал. И убери массивные скобки в своем примере.
>>1632233А вообще только такой способ возможен чтобы хранить все материалы в 1 переменной в куках? Имею ввиду что делаем пустой объект, закидываем туда объекты с ключом материала и уже в каждом объекте внутри ключа сохраняем нужные нам поля из материала? А потом всё это просто парсим в строку и записывает в переменную в локалсторейд или куки? Ну а при извлчение парсим обратно в объект с объектами с помощью джейсон парс?
>>1632256я вопроса не понимаю. В куках ты хранишь одну информацию, в localStorage, useState, Редакс, context (хуков) ты хранишь совсем другую информацию. Важно, то что в качестве тестовых заданий для фронта (например мувисерчер), тебе предлагают хранить всю инфу в localStorage, это просто чтобы облегчить задание. На деле, ты хранишь свистоперделки в localStorage. Реальную инфу, ты запрашиваешь с бэка SQL и там же её и хранишь. О какой информации идет речь?
Ребят, есть 3 блока с разными классами, но повторяются пять раз на странице. Я короче установил всем трем TabIndex по порядку 123 для каждого. Дальше я повесил листенер на установление класса focused для focusin блока, и его удаление для focusout. Как мне теперь стилизовать их, чтобы тот блок, что в фокусе, имел обычные стили, а остальные блоки типа блюрились. Но блюрились только тогда, когда 1 из элементов в фокусе, а не по умолчанию. const cont1 = document.querySelectorAll('.wrap1'); for (let i = 0; i < cont1.length; i ++) { cont1.tabIndex=1 cont1.addEventListener("focusin", () => cont1.classList.add('focused')); cont1.addEventListener("focusout", () => cont1.classList.remove('focused')); }
>>1632272Ладно забудем о куки, берём локалсторейдж, там мы можем хранить в 1 переменной только 1 значение, строку, то есть чтобы сохранить массив материалов нам нужно объект конвертнуть в строку для сохранения, и обратно распарсить в объект для извлечения и отризовки на странице, отсюда у меян и вопрос только такой вариант существует хранения избранного в локалсторейдже?
>>1632303Ну можешь написать функцию, которая будет разбирать твой массив на переменные и каждую отдельно закидывать в стораге, а потом выдирать и заново собирать массив.
В чем тут ошибка? Нашел единственный способ, который позволяет скрипту в TM выполняться на сайте. При обновлении страницы все ок, но при переходе на следующую страницу код не выполняется. В чем проблема?(function repeat(){ var element = document.getElementsByTagName('div')[6]; if(!element) return setTimeout(repeat, 100);
>>1632309Мне кажется это невозможно, а вдруг туда поместят значение из другого кода и вот ты уже парсишь чужие данные, можно сделать что-то типа ключа и проверять на его наличие, но это уже извращение, отсюда и получается что вариант только загонять всё в джейсон массив и сжимать его в строку, просто сортировать этот джейсон объект не так уж и красиво получается, много говнокода с лишними движениями, как вариант с помощью .keys задать каждому объекту айди и уже подставляя этот кей работать с родительским обектом, короче говнокод получается
>>1632303>Ладно забудем о куки, берём локалсторейдж, там мы можем хранить в 1 переменной только 1 значениекто тебе это сказал?, ты делаешь объект , в объекте ключей сколько тебе надо. В значения может быть хоть число, хоть объект, хоть массив или строчка. Откуда вы берете эту информацию, что за гавно?
>>1632365Что тебе скидывать, создаём объект, храним в нём объекты название у которых ключ, айдиarray = {id1: {title: "title 3", desc: "description", "url 4", "img 5"},id2: {title: "title 2", desc: "description", "url 6", "img 7"},id3: {title: "title 1", desc: "description", "url 8", "img 9"}}Сжимаем его в строку с помощью JSON.stringify и помещаем в перменную в локалсторейджКогда хотим вывести данные на стнаницу, распашиваем эту строку с помощью JSON.parse, и вот у нас уже опять объект, но сортировка в нём по айди, а нужно например отсортировать по title перед выводом на станицу, и тут начинается свитопляскоебля с выдиранием айди и добавлением его в массив и уже потом с помощь .sort сортировать это говно подставляя айди и ключ значения из каждого объекта, короче хуй знает поймёшь если надо, я этот способ увидел у хохла на ютубе и хочу узнать у анонов это единственный способ хранения избранного пользольвателя в локасторейд в 1 переменной или есть другеи спосбы, пока способа кроме джейсон обекта сжатого в строку в голову не приходит
>>1632378https://repl.it/@CharonIV/sortArrВсе, доволен? Я надеюсь не надо объяснять, как привести к такому массиву и как расширить объект (добавить ключ в объект)
>>1632404Анон, прикол в чём, как ты теперь удалишь например весь объект с id: "1", по этому и нужно айди задавать снаружи этого объекта, чтобы потом просто по айди его удалить без свистоплясок когда пользователь это захочет, по этому нужен вид именноid1: {title: "3", desc: "zxc", url:"4", img: "5"},id2: {title: "3", desc: "zxc", url:"4", img: "5"}...
Кстати, харкач тож ехранить избранное в локалсторейдж, там абу вообще ещё килатонны говна засунул в 1 переменную, не только избранное, как он интересно всё это говно распаршивает, хранит он это всё тоже в объекте
Бля, помогите кто нить, уже задолбался биться. Есть короч сайт, на котором загружается айфрейм на всю страницу. Есть Темперманки, которым я обращаюсь напрямую к фрейму. Во фрейме, как я понял, загружаются разные данные с других сайтов. Так вот, при любой попытке обратиться к элементам внутри фрейма, будь то листенер или онлоад, мне возвращается пустой нод. Если я устанавливаю таймаут и проверяю появление первого div в body, то получается обращаться к нужным элементам, но при переходе на следующую страницу это не работает. ЧЕ ДЕЛАТЬ???
>>1632418Вот десь код абу по распаршиванию и сортировки избанного https://2ch.hk/makaba/templates/js/sharkey.jsНо чёто слишком дохуя у него там кода, можно же намного меньше
>>1632420какой-то говнокод получается, человек должен нажать удалить из избранного, после чего скрипт просто удаляет объект с этим дивом, всё, пример у тебя перед глазами, добавить или удалить тред из избранного
>>1632434>К содержимому внутри фрейма обращаться нельзяС чего вдруг? То, что для кросс доменного фрейма нужно пост мессеж юзать я в курсе, но это если из родительской страницы обращаешься, а я обращаюсь напрямую к фрейму внутри страницы из скрипта Темперманки и выполняю всю логику там. Но скрипт видимо выполняется до того, как фрейм полностью загрузится, поэтому он не видит элементов. Я пытался подцепить листенер или онлоад, но это не работает. Если же устанавливать таймаут, то все работает, но только 1 раз при загрузке страницы, а при переходе на следующую не срабатывает. Как подправить чтоб работало?(function repeat(){ var element = var element = document.getElementsByTagName('div')[6]; if(!element) return setTimeout(repeat, 100); //МОЯ ЛОГИКА}());
Вот охуенный пример как избранное хранит абудаби, если сейчас это распарсить и вывести на страницу, оно будет отсортировано по номеру тредаайди, а нужно например отсортировать по title или last_posts перед тем как вывести, используя минимум кода чтобы не превращать это в говнокод
>>1632442Что интересно, если я заменюdocument.getElementsByTagName('div')[6]На document.querySelector('любой класс в фрейме');То вообще ничего не работает. В чем прикол?
>>1632449Можно и с .sort, но мне кажется всё равно айди нужно делать именем объекта, даже у макаки так сделано, скрин выше
>>1632454Ты пытаешься сделать на JS, то что возвращает бэк макаки. Он делает запрос к своей базе и сортирует например по id. Затем преобразует это в JSON и через апи отправляет тебе. Все что его JS делает, это рисует по приходящему JSON. Его JS никак ничего не меняет. Гугли базы данных. Если ты хочешь делать тоже самое в минимум движений, то тебе нужно получать эти данные, отправлять к себе на базу и так же сортировать по запросу, который тебя устраивает. Я тебе предлагал как это сделать через JS. Если тебя это не устраивает, то можешь id пихать в тело объекта, а ключем делать то по чему хочешь сортировать. Все, больше вариантов нет (по крайней мере в моем случае). Если тебе лень это делать, то иди учи запросы к базе и хватит срать в треде.
>>1632459Хорошо спасибо анон, просто хотелось увидеть максимум возможных способов и собрать из них лучший, а то как хранить всё это в куках/сторейдже я так понимаю вариантов и нет, только в сжатом в строку джейсоне
У макаки кстати избранное тоже без сортировки по айди выводится, если добавить тред в избранное он снизу, но после обновления стараницы он уходит вверх, так как айди пхп треда больше, макака не стала беспокоиться о том что анончикам захочется отсортировать треды по добавленю в избранное
>>1632476Бля, я спрашиваю одно, ты мне отвечаешь другое. Фрейм на другом домене, но это не имеет значения, потому что ОН ВСТАВЛЕН РЕКВАЙЕРОМ В ТЕМПЕРМАНКИ. Вся логика выполняется ТОЛЬКО на фрейме, что мне и нужно. Проблема в том, как выполнить логику после загрузки всего контента во фрейме, чтоб скрипт видел элементы в нем. Интервал или Таймаут ее решает, но только при обновлении страницы, а при переходе на следующую скрипт не выполняется.
Аноны, есть люди, которые пользовались GIPHY API?Когда делаю запрос, то получаю embeded_url, который сайт предлагает вставлять через iframe. Есть какой-нибудь способ вставлять такое через img? А то если на странице 5+ таких фреймов, добавление новых вызывает тормоза.
Друзья, что делать, если открываю задачу на леткоде и в ступоре сижу?Я понимаю что нужно использовать в задаче, но не понимаю как правильный алгоритм решения составитьЧто обычно вкатывальщики с этим делают? просят помощи и как-то подтолкнуть у других людей, в чатиках или у знакомых прогеров?
>>1632721Reduce более "широкий" и использовать его для создания массивов костыльноReduce - чтобы посчитать сумму:[1, 2, 3].reduce((acc, x) => acc + x) // => 6Map - чтобы создать новый массив:[1, 2, 3].map(x => x * 2) // => [2, 4, 6]
>>1632724Я конечно не знаю что там, но подозреваю что проблема в том, что там абстрактная хуйня. Совет - не занимайся абстрактной хуйней, решай реальные практические задачи. Как правило как решать реальные задачи субоптимально хотя бы сразу более или менее понятно, делаешь, потом оптимизируешь если не нравится. Вся эта абстрактная хуйня отбила мне напрочь желание кодить в студенческие годы, потом пришел в промышленный кодинг и там этой ебалы вообще нет, промышленный кодинг совсем про другое. И вообще голый JS никому особо не нужен, vue или react учи. У кого-то видел что он когда берет новую фронтохуергу пишет клон трелло, вот напиши клон трелло. Как допишешь, если оно будет норм выглядеть и работать, считай что ты джун и пиздуй искать куда жопу приткнуть, без работы над чем-то реальным в реальной команде будешь развиваться со скоростью улитки.
>>1632733Ты долбоеб? Зачем ты что-то пишешь, если сам ничего не понимаешь? >>1632721У них разные предназначения. Reduce чаще используют когда тебе нужно сжать данные или преобразовать их, вычленив из них что-то нужное, поэтому при помощи Reduce ты можешь возвращать любой тип от объкта с массиво, до строки с числом. Map используют для модификации уже существующих данных в массиве, без изменения структуры массива.
>>1632724Зависит от сложности задачи. Если это задачи уровня Easy, значит тебе нужно дрочить теорию и логику. Для уровня Medium нужны базовые знания алгоритмов. Уровень Hard это уже продвинутое знание алгоритмов, которые ты сможешь решить только если дрочил похожие задачи при изучении алгоритмов. В любом случае, можешь смотреть на решение и запоминать принцип по какому оно сделано, а также использованный в нём алгоритм. С опытом сам научишься решать также.
>>1632747Спасиб за совет конечно, но я сейчас на самом низком уровне "функции", если его не преодолею то какое мне там реальное программирование..>>1632751Вот вчера с наводками от друга только easy решил.. сейчас вроде медиум алгоритм правильный придумал, осталось реализовать
>>1632755Слушай, dawg. Я тебя понимаю. Алгоритмы и вся эта хуерга полезна для развития ума, но по больше части к кодингу реальному отношения особо не имеет. Да ты выучишься алгоритмы сортировки скажем. Но использовать ты будешь скорее всего готовый от фреймворка какого-нибудь или lodash'евский. Все эти размены монеток, управление лифтами, относительно полезно, чтобы не протухнуть. Но по факту, вдупляй в работу с DOM-деревом, вдупляй в аяксы-хуяксы. Меня конечно может обоссут тут, но я не верю в JS на бэке, и вообще не джаваскриптер я, но при необходимости, когда тима осталась без фронта, месяц его замещал на проекте с Vue. Мое мнение - все что на бэке может JS, другие языки могут лучше. А на фронте никаких яблок, монеток, лифтов нет. Слушаешь события, обрщаешься к API, меняешь состояние компонента (или напрямую DOM, если у тебя жакверипараша). Ну или просто слушаешь события и меняешь состояние.
>>1632764> Алгоритмы и вся эта хуерга>для нахождения суммы чисел массива от 1 до n хуячит цикл>для нахождения единственного не дублированного элемента массива, хуячит два вложенных цикла.>РЯЯ НИНУЖНЫ Я СКОЗАЛ НИНУЖНЫ МААМ СКАЖИ И ММожно только посмеяться над твоими мантрами.
>>1632764>Да ты выучишься алгоритмы сортировки скажем. Но использовать ты будешь скорее всего готовый от фреймворка какого-нибудь или lodash'евский.вы что наркоманы чтолечем вам не нравится родной алгоритм сортировкии что вообще за хуйня этот лодаш, я ни разу не видел ни одного полезного примера с ним, такое впечатление что это набор велосипедных копий того что и так есть в языке, с их forEach я отдельно проорал
>>1632764>А на бэкэнде никаких яблок, монеток, лифтов нет. Слушаешь контроллеры, достаешь данные из базы, меняешь их и отдаешь на фронт
>>1632766Еще хуже сделаю, и сорян за лодаш, его доку проще листать чем жсовую._.reduce(_.times(n, v => v + 1), (s, v) => s + v, 0)_.filter(arr, (v) => arr.indexOf(v) == arr.lastIndexOf(v))1) Почему? Потому что могу блеат. Потому что в одну строчку. Потому что никому нахуй не нужна сумма чисел от 1 до n. Потому что реальные данные не имеют отношения к 1 до n хуйне, они куда более непредсказуемы. Ну или загуглю.2) Да не оптимально, зато читаемо, понятно, в одну строчку. Да и кому такие задачи нужны вообще?Ну то есть реально, когда ты последний раз решал такие задачи для чего-то что где-то в проде крутится?
>>1629259 (OP)Нужно вкатиться в ванильный ЖС (на полшишечки), чтобы лучше врубаться в веб. html и css уже освоены, скиньте годные пособия/видеокурсы чтоб было максимально информативнов шапке треда ничего нет
>>1632964Завтра ищешь в интернете книжку HTML5 Canvas. Похуй если ничего не поймешь. Затем идешь на w3.org и изучаешь стандарты от корки до корки. Потом зубришь, именно, сука, вызубриваешь содержимое сайта developer.mozilla.org, чтобы от зубов отскакивало. Когда напишешь свой первый сайт - видеоредактор, по пути детально разобравшись в WebGL, скачиваешь и изучаешь любой редактор, рекомендую Notepad++ или Adobe Dreamweaver. Как переделаешь редактор, чтобы можно было добавлять объекты из 3DSMax и красивые 3D-переходы, можешь идти дальше - тебя ждет увлекательный мир JavaScript. WebCL, XUL, сверхбыстрый асинхронный Node.JS, сверхмощная мозговыебывательная многоуровневая обфускация. Отсос хиккующих выблядков / просто неудачников типа рейфага или Flash/Silverlight-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
Чет заутпил с парсером cheerio.Загрузил хтмл, с помощью селекторов $('селекторы') нашел нужный мне <tr>...</tr> таблицы в хтмл.Это все получил как cheerio-объект.let ch_obj = $('селекторы');А дальше я хочу уже поитерировать <td></td> уже в как дочерние объекты в объекте ch_obj. Но чет запутался нахуй в методах и свойствах у этого чертового объекта ch_obj.ch_obj - это фактически строка таблицы. Какие методы нужно использовать что бы достать конкретные ячейки этой строки?
>>1632747>> без работы над чем-то реальным в реальной команде будешь развиваться со скоростью улитки.Это, увы факт.мимо-самостоятельная улитка в гос.шараге
>>1633022п.с. я даже как то устал. Для своей шараги я небольшое приложение на пхп/sql запилил. В ноде подразобрался.Но все это - самостоятельный пердолинг, от бизнес-работы я далек.На hh есть учетка с репозиториями, и мне даже hr предложения свои кидают. А я хз че им отвечать, и вот почему: на данный момент имею работу, которая очень хороша по условиям, ЗП - сорокет.Уходить на галеру в бизнес работать за еду - звучит как хуйня. А на ЗП которая стоит того что бы уйти с нынешней- я не потяну по навыкам. Я как то ходил в контору одну на собес, написал тестовое, его приняли, потом даже позвали уже общаться с гендиром, обсуждать ЗП и условия. Но он увидел видимо что я по сути и не ищу работу зп 60-70 предлагали, но я ей богу бы не ушел со своей работы скорее всего и короче не позвонили, хотя уже обещали прям что позвонят и пригласят уже решить как поступить, увольняться мне с предидущей работы и т.д.Короче уныло.Буду искать удаленку чтоли, и парсеры писать хочу.
>>1633000...Я не зеленый вкатывальщик. Начинал прогать еще 2 года назад - прошивал микроконтроллеры на Си на предприятии. Затем вкатывался в Питон и в Пыху. Мне не нужно глубоко влезать во фронт, буквально поверхностно освоить жс чтоб было легче работать с вебом в целом Сети Танненбаума уже давно прочитаны, так что тут тоже все нормМне только окунуться в жс и не более
>>1633040судя по твоему посту ты не хочешь работать вообще а не не хочешь работать за еду, раз не хочешь кодить за большую зп чем у тебя сейчас
>>1633130ты какой-то дефектный, на дворе 2020 год, за 300к в секунду ищут data science и просят на питоне написать hello world, после курса на курсеры. Ты же перекатываешься из Си в Пыху, затем зачем-то хочешь знать чистый JS, который нахуй никому не всрался и при этом всем, ты не задаешь : аноны хочу доку по Реакту/Angular/Vue на офф сайте почитать, норм или где-то в другом месте? Ты же даже не можешь открыть учебную доку по JS, прочитать по диагонали за один день и угомониться
>>1633155PS какие нахуй видеокурсы по чистому JS, для человека с продакшен опытом СИ? КАКИЕ видеокурсы, что тебе тут не понятно?
У меня щас шиза начнется.Короче, меня не слушается скрипт, никак не могу заставить его прогнать ссаный цикл.При первой же итерации счетчик равен links.length - 1, хотя ссылок там больше сотни.Если поставить условие j < 100, то он при первой итерации будет 99 и цикл прекратится.Дичь какая-то, уже 6 часов не могу собрать ссылки со страницы.
То что querySelectorAll по ID, это если что не я, у ютуба разметка такая.Элементы берутся нормально, проверял.
>>1633180наверно потому что айди должен быть уникальным, по этому жс и не может его перебрать, попробуй через кверисилектор по другому значению собрать эти ссылки
>>1633186продолжай жить в своем маня мирке, у меня пару друзей именно так вкатились туда. Один уже синьер. Но тебе виднее.
>>1633191Да не, даже просто цикл от 0 до 100, к примеру, не выполняется. Счетчик в первой же итерации 99 и все.
>>1633217бля анон ты чё сутками сидишь и эти ебучие свечи и графики караулишь? как вспомню, так вздрогну, это же пиздец, особенно когда всё падает, особенно сейчас
>>1633293Ты какой-то тривиальной ебенью пугаешь, надо Бурбаками по олдфажному пугать https://books.google.ru/books/about/Theory_of_Sets.html?id=IL-SI67hjI4C
>>1633344Если че то на пикче объясняется максимально тривиальная ебота для 1го курса, но уже на этом большинство "веб-инженеров будущего" прогающих копипастой с гугла жидко кекнут и откинутся. Что уж говорить променее тривиальные главы
>>1633348А те умники которые со всем справятся в большинстве своем пойдут во всякии НИИ за копейки на сях писать или еще что-то там, потому что у математиков обычно с головой что-то не то малек. А веб-инженеры будущего пропрыгав пару тройку галер в принципе нормально устроятся, там мозгов так-то больших не надо, не быть дебилом, не быть аутистом и местечко в тепле найдешь.
>>1633381>пропрыгав пару тройку хуевВот теперь правдоподобнее>пойдут во всякии НИИ за копейкиМы про дата саенс базарим, але
>>1633386Откуда в РФ на первом или каком-либо еще курсе дата-саенс? То есть нет, математическую базу которую дата-саенс использует может и дадут, но настолько скучно, оторвано от жизни и вообще, что ты нихуя не поймешь что это такое было и зачем. В итоге в универе всю эту хуйню учат ток аутисты-математики.
Каким образом можно два массива вида ['a', 'b', 'c'][1, 2, 3]превратить в один массив вида['a1', 'b2', 'c3'] ?
>>1633540массив 3 = массив1[0] + массив2[0]массив 3 = массив1[1] + массив2[1]массив 3 = массив1[2] + массив2[2]
>>1633540зипа в джс нет, нужен мэпconst arr1 = ['a', 'b', 'c']const arr2 = [1, 2, 3]const res = arr1.map((el, i) => el + arr2)массивы должны быть равной длины или хотя бы arr1 короче arr2если второй массив это именно цифры по порядку с единицы он вообще не нуженconst res = arr1.map((el, i) => el + (i + 1))
>>1633151Ты прав. Приложуху для шараги я писал то ковыряясь пальцем в носу. Хочу пишу, хочу не пишу - хобби короче.Я немного свои мотивации проанализировал, поэтому решил что буду активно искать удаленку, или работу что по условиям устроит.
Аноны, написал на node скрипт, который парсит сайт один. Нужно что бы этот скрипт запускался раз в сутки.Как это сделать?
>>1633710п.с.скрипт - в рамках сревера работает. Т.е. сервак работает, выполняет свои функциии. А раз в сутки должен запускаться мой скрипт парсинга и обновлять данные на вэю-морде
Как сделать так, чтобы нижеприведённый код заработал на ноде?Так не работает:> import 'chai/register-expect'; А так работает> import 'chai/register-expect.js';
>>1633848А что лучше использовать?Мне для автоматизации тестирования. Выбрал Mocha и Chai, так как про них больше всего написано в интернетах.
>>1633853Тут что-то странное, должны такие пути ресолвиться правильноУ тебя нода 13+ или babel?Может у тебя где-то кроме либы есть папка "chai"На моей машине всё работает с обычным require('chai/register-expect')
>>1633881Была нода. Сейчас поставил ещё babel cверху. Так всё заработало.Да и в принципе решил отказаться от chai и mochi в пользу Jest'a. Спасибо анону >>1633848 за наводку искать что-то новее.
Аноны, подскажите:При клике на кнопку на страницу добавляется gif через iframe. При каждом новом нажатии все ранее добавленные gif перезагружаются. Можно как-нибудь сделать так, чтобы они не перезагружались?
>>1634024Пишу на реакте, для получения gif использую GIPHY API. У меня поле поиска в которое я ввожу название тега и по нажатию кнопки я делаю запрос гифки по этому тэгу. В ответ АПИ мне вот такое отдаёт: "https://giphy.com/embed/cMnt7i2RykmpW".Дока говорит, что embeded можно только с помощью iframe вставить. Я так и делаю, но проблема в том, что я все запросы сохраняю и я вывожу все гифки, которые искал пользователь, т.е. при каждом запросе у меня стейт обновляется, что тригерит компоненту, отображающую все этих гифки.
Аноны, как отменить ререндер определённых компонент при использовании useState?У меня есть форма с инпутом, под которым отображается таблица. Таблица отрисовывает в зависимости от того, что именно отправила форма. Но почему-то каждый раз, когда я что-то пишу в инпуте, вся таблица по новой рендерится. Как привязать рендер таблицы к моменту отправки формы?
>>1634091https://codesandbox.io/s/elated-rgb-25steУ меня тоже самое, что и здесь. При любом изменении инпута происходит перерендер списка.
Народ, подскажите плиз. Есть короче функция ожидания появления элемента на странице. Она принимает заданный элемент в качестве аргумента и возвращает его. Конечная функция выглядит так: function nodeCallbackFunction (jNode). Все, что внутри этой функции будет ожидать появление заданного элемента.Так вот, как мне использовать эту функцию в других функциях? Как к ней обратиться так, чтобы получить результат? Ведь ей уже передается аргумент jNode из основной функции. А мне нужен сам элемент, но прошедший ожидание.
>>1634088именно такое поведение и должно быть. У тебя стоит onChange и функция, которая меняет стэйт. Происходит изменение стэйта при каждом символе и ререндер. Это никак не сказывается на производительности из-за того что в Реакте существует Virtual DOM и он смотрит что надо перестроить. В твоем случае меняется только эта строчка в input, больше ничего. Либо, вот как сказал анон >>1634105
>>1630442Нет, просто это грозит утечкой данных, за счёт выполнения произвольного кода из-под шрифтов,а ещё - DDoS'ом системы, по причине иммутабельности строкового типа в JavaScript,так как при изменении строки, и её присваивании её другой переменной,как и при копировании, каждый раз создаётся новый объект - новая строка.Так вот, эти операции могут быть зациклены при помощи Тьюринг-полных шрифтов, и замкнуты рекурсивно.
анон, допиливаю адрес доставки для интернет магазина. и тут такая проблема возникла: когда висит в фокусе мой инпут с городом то я спокойно ввожу город. как только фокус теряется, то он сразу же отсылает то что я напечатал в пхп через ajax который уже дальше обрабатывается. все это сделано через backbone js. и вот мне к этому надо прикрутить автокомплит. но проблема в том что когда я пишу и выпадает список, то когда жму ну город из списка, фокус сразу же теряется и он отсылает только то что я напечатал сам, а не то что было подставлено через автокомлит. так вот вопрос : как это фиксить то и куда копать?
Анчоусы, есть у кого "Web Development with Node and Express: Leveraging the JavaScript Stack 2nd Edition"?
Аноны, подскажите:Хочу, чтобы во время загрузки данных от АПИ кнопка была заблокирована, но этого не происходит. Я понимаю, что это происходит из-за того, что у меня друг за другом идут setLoading. Как по умному это провернуть?https://codesandbox.io/s/stoic-lehmann-k6u18
Вопрос по React - я вижу в туторах частично дефолтный синтаксис React страницы - начиная с №1 Import React from 'react'; etc...А вижу и такой синтаксис:№ 2 class App extends React.Component {Чем они отличаются? Проблема у меня состоит в следующем: Проект на ASp.NET Core 3.0, на версии 2.2 я использовал webpackmiddleware, но судя по MSDN - его выпилили из ASp.NET Core. Теперь идет подключение jsEngineSwitcher - V8+ChakraCore, где используется не привычный и не удобный синтаксис 2. Как его измнить на 1? Извиняюсь, если не по теме со своим .NET Core
>>1634366> Import React from 'react'; Тебе в любом компоненте нужно импортировать реакт, он нужен для jsx. >class App extends React.ComponentЭто реакт класс компонент. У него есть своё состояние, которые ты можешь хранить.Если ты хочешь использовать простые рендер компоненты, то сейчас ты можешь юзать хуки.
>>1634371Вот этот скриптhttps://gist.github.com/BrockA/2625891#file-waitforkeyelements-jsСюда забивается нужный элементwaitForKeyElements ( ".field__impl" , nodeCallbackFunction );А эта возвращает тот самый элементfunction nodeCallbackFunction (jNode) { }Так как его потом использовать в других функциях? Смотрю доки, но никак не пойму.
>>1634376у меня при импорте компонентов не компилиться файл, хз чего. Только если задаю в синтаксисе 2
>>1634365она блокируется, но на милисекунды. Добавь это, чтобы убедиться.>Как по умному это провернуть?Для начала добавить этот запрос, а не выдумывать его у себя в голове. Добавить его в useEffect и написать промис, который на этапе формирования будет блокировать кнопку, а когда получает результат, то будет разблокировать.
>>1634378Дрюк, там 2014 год жиксери и вообще таймеры. Используй mutation observer, если нужно следить за изменениями документа.
Аноны, как можно растянуть див на всю высоту страницы, с учётом того, что у страницы может быть скролл? Т.е. мне heigth: 100vh не подходит.
>>1634584вот майкрософт и подмял под себя всю жс-экосистему. гитхаб, вскод, тайпскрипт, теперь еще и нпм
>>1634478>Используй mutation observer,Я копал в эту сторону, но ничего не получается. То ли я не догоняю как он работает, то ли он не работает в моем случае. Мне нужно получить элементы со страницы, содержимое которых подгружаются по мере ее загрузки из внешних источников. Там наверно что-то типа парсера или типа того. Короче, нужно получить почти всю страницу, но когда она полностью загрузится. Как это сделать обсервером, можешь показать пример?
Привет, нужна помощь. Вокруг меня целый гугл и куча-куча всего с джс. Подскажите, с чего начать изучение. Точнее, подскажите, с чего точно не стоит, пожалуйста.Для себя выделил гикбрейнс пока что.Сейчас почитываю learn javascript параллельно закрепляя за какими-нибудь задачками (пока это console.log, alert, prompt + условия). Скудно и мало, но если буду спешить, все надо мной будут смеяться.
>>1634671>начать изучениеИзучение чего?Синтаксиса джс? У тебя уже есть лерн джс, этого достаточно.>гикбрейнсХочешь заплатить деньги за курсы, бесплатными аналогами которых захламлен ютуб?
>>1634671Всё что тебе нужно https://developer.mozilla.org/ru/docs/Web/JavaScriptНахуй learn javascript
>>1634675>Точнее, подскажите, с чего точно не стоит, пожалуйста.>Для себя выделил гикбрейнс пока что.Я написал, что в гикбрейнс вообще заглядывать не буду
Привет! Столкнулся с проблемой при тестировании реакт компонента при помощи снепшотов: Cannot read property 'contextTypes' of undefined, react-router testing - javascriptПри вызове метода shallow всё крашится. Вот поподробней:menu test › encountered a declaration exceptionTypeError: Cannot read property 'contextTypes' of undefined34 | fetchMenu: () => {},}35 | Enzyme.configure({ adapter: new Adapter() })> 36 | const menu_container = shallow(<Menu {...props} />) | ^37 | it('renders <Menu/> template', ()=>{38 | expect(menu_container.find('a').toHaveLength(1))39 | })
Сап тред.Есть вопрос. Существует ли вариант используя html5 и js стримить аудио/видео в файл на отдалённом облаке? Так, чтобы если стрим вдруг оборвался, то чтобы файл не корраптился или корраптился не особо сильно.Знаю только, что можно просто используя getUserMedia() получить аудио/видео, а потом его уже запилить в файл, но мне, как видите, нужно немного не это.Заранее благодарю за помощь.
>>1634656Смотришь, какой самый корневой элемент, который грузится сразу. Вешаешь на него обсервер с childList true. Перебираешь мутации, если добавлен нужный элемент, вызываешь действие.
Есть ячейка таблицы td display: table-cell;В ней <p> и под ним два <span>. Как второй спан выровнять по правому краю, кроме float right?
>>1634390Импорт и объявление компонента это вообще про разное. Напиши лог, почему не компилируется, там видно будет.
Как заставать вебпак после сборки копировать .build.js-файлы в какую-нибудь папку? Единственный плагин, который я нашел (CopyWebpackPlugin), умеет это делать лишь во время --watch флага, что совершенно не подходит при сборке продакшен-версии или на какой-нибудь CI/CD-платформе, например.
Объясните пожалуйста почему когда я вешаю на клик this.props.history.push(url) , урл в стоке меняется, но компоненты не рендерятся, но когла просто вызываю в скрипте this.props.history.push(url), то все работает
>>1629259 (OP)Сап, есть такая проблема:Есть приложение на ангуляре, навигация в компонентах через router с абсолютными путями.Сейчас появилась необходимость добавить еще компонент на верхнем уровне, у которого будет доступ к существующим, при этом будет свой машрут с префиксом.Т.е, было:host/entities/2сталоhost/entities/2&host/PREFIX/entities/2Из-за того что в некоторых компонентах, навигация через router с абсолютными путями:router.navigate('/entities')То при навигации из нового компонента (с урлом /prefix/entities), перекидывает не на тот маршрут. Где было можно переписал на относительные пути, но есть места где такое не катит.Какие есть варианты?
Аноны, есть ширина блока. Есть разные тайтлы фильмов, которые при константном шрифте, могут не умещаться в 1 строку. Цель - адаптивный font size. И вроде бы проблем никаких нет, только одно понять не могу. Везде пишут, что font size это высота символов. А как высчитать ширину, зная высоту. Есть какой-то коэффициент?
>>1634702Ну кажись получилось. Я сделал перебор элементов в мутации через foreach, и теперь на запрос элемента мне приходит в консоли штук 10 пустых массивов, а потом еще почти сколько же нужных. Я так понимаю это получается перебор по мере их загрузки? Это норм вообще или как?
Есть тут кто в вебпаке шарящий? Я тут часа 2 копался в гугле, так и не нашёл нихера. Есть у меня в css файлах url(..) с какими-то адресами картинок. Все картинки лежат на cdn. Вот мне нужно чтоб вебпак в своём аутпуте заменил всякие url(/images/hui.png) на url(<cdn-path>/images/hui.png). Путь к cdn из системных переменных берётся. Все, что гугл советует, это менять publicPath в output, что мне вообще не подходит потому, что он вообще на все файлы распространяется.
>>1635458Мог бы в документации посмотреть а не копаться в гуглеhttps://webpack.js.org/loaders/file-loader/#publicpathhttps://webpack.js.org/loaders/file-loader/#function-2Оно?
>>1635458С третьегруппными либамиnpm install -D string-replace-loader { test: /\.js$/, loader: 'string-replace-loader', options: { search: '(?<=url\().*(?=\))', replace: 'https://cdn.com', flags: 'g' } }
>>1635412бамп и PSПикрелейтед 2 слова , с одинаковым шрифтом, font-size и кол-вом символов. Однако их ширина отличается
Бандиты, сталкивался кто со Svelte (https://svelte.dev)?Че скажете? И нахуй оно вообще нужно? И чего почитать про нее подробнее?
>>1629259 (OP)Существует ли какой-то способ, разблочить setTimeout, пока выполняется и ещё не завершён - цикл while или for?
>>1629259 (OP)Смотрите сюда.Есть promise, и он уже разрешён.Пытаюсь его вывести, в консоли браузера выдаётся это:>Promise {<resolved>: true}>__proto__: Promise>[[PromiseStatus]]: "resolved">[[PromiseValue]]: trueТак вот, какими же хитроумными завихрениями говнокода - взять да выколупать это ёбанное true оттуда???
>>1635645Оо, внатуре. А то я уже и promise["<resolved>"], и promise.resolved и JSON.stringify(promise) - всё перепробовал, и только 8======D в консоли увидел.
>>1635647хуета. Надо без async-await как-то запилить, а то не во всех браузерах работает:>await (new Promise(function(resolve, reject){setTimeout(function(){resolve(true)},500);}));>Uncaught ReferenceError: await is not definedВот, через promise.then() заебись всё пашет, без этих всяких async, await, let, const и стрелочных функций:>var result_value = false;>new Promise(function(resolve, reject){setTimeout(function(){resolve(true)},500);}).then(function(result){result_value = result; console.log(result_value)});>var i = 0; var check_result_value = setInterval(function(){if(i<10){i++; console.log(result_value);}else{clearInterval(check_result_value)}}, 100);
Поясните за промисы, где их применять, кроме как в сетевых запросах?Вот я могу использовать их например для перебора большого массива, чтобы перебор не блочил ничего? Как это будет выглдеть?
>>1635627Важно понимать, что в синхронных же функциях - циклы, как и рекурсивные вызовы функций - блочат весь поток.Но можно сделать функцию с петлями - асинхронной, и спать в ней через promise - с await, как-то так:>var completed = false; setTimeout(function(){completed = true;}, 2000); //true after 2 sec>//function sleep(ms){var end = Date.now() + ms;while (Date.now() < end){continue;}}; //just do nothing, and continue. This while is blocking setTimeout.>//function is_completed(){for(var test = 1; test<=5; test++){sleep(1000);}return completed;} //5 seconds, but setTimeout blocked, and completed = false;>function sleep(ms) {return new Promise(res => setTimeout(res, ms));}//sleep, by using promise>async function is_completed() {while(completed == false){await sleep(1000);}return completed;}//wait in while with sleeping in the loop>console.log("is_completed = ", (await is_completed()));
>>1635654Анус себе отсоси, ленивое хуйло. Вы ещё, блять, на стандартнейшем HTML 1.1 не кодили ваши поделки. Никто из-за ваших стрелок ебучьих, проверенные временем, опенсорцные браузеры, не будет менять на какое-то говно проприетарное, копирастическое, потому что проще переписать ваш говенный быдлокод - на нормальный, обратно-совместимый, стандартнейший, каноничный код.
>>1635658>в синхронных же функциях>рекурсивные вызовы функций - блочат весь поток>можно сделать функцию с петлями - асинхронной, и спать в ней через promise - с awaitДействительно, рекурсивные вызовы без setTimeout - блочат поток, и при приводят к "Uncaught RangeError: Maximum call stack size exceeded".Но если их производить по таймауту - то не блочат:>var completed = false; setTimeout(function(){completed = true;}, 2000); //true after 2 sec>function sleep(ms){var end = Date.now() + ms;while (Date.now() < end){continue;}}; //just do nothing, and continue. This while is blocking setTimeout.>//var slept = 1; function is_completed(){if(completed==true || slept > 5){return completed;}else{sleep(1000); console.log(slept+"s"); slept++; return is_completed();}}//false after 5s>//setTimeout(function(){console.log("completed: ", completed);}, 3000)//true, after is_completed finish>//console.log("is_completed = ", is_completed());>function x (callback) {setTimeout(function () {if(completed == false){console.log("completed still is ", completed); x(callback);}else{callback(completed);}},500);}//stop, after 2s>x(console.log.bind(console)); //this is special case of console.log //or //x(console.log);Очевидно, что здесь, нет async и await, и наверняка, можно было бы даже вернуть completed (как - не знаю), но можно и обработать его через callback.
>>1635672И вообще, чтоб рекурсией не заниматься, и не выхватить "Uncaught RangeError: Maximum call stack size exceeded" - можно сделать так:>var completed = false; setTimeout(function(){completed = true;}, 2000); //true after 2 sec>function x(callback) {callback(completed);}//stop, after 2s>function return_value(callback){var timerId = setInterval(function(){if(completed){x(callback);clearInterval(timerId);}},100);}>return_value(console.log); //or return_value(console.log.bind(console));
Народ, подскажите по MutationObserverПодцепил его на перебор addedNodes, чтобы получить элементы, которые загружаются динамически. Потом проверяю наличие элемента с нужным классом и пихаю в массив глобальной переменной, чтоб потом в других функциях можно было использовать. Почему по логам он мне возвращает 4 одинаковых массива?https://jsfiddle.net/jxy2vo8h/
>>1629259 (OP)>>1635627>>1635658>>1635672>>1635703Аноны, вот здесь: https://developer.mozilla.org/ru/docs/Web/API/WindowTimers/setTimeoutЯ вижу polyfill для setTimeout и setInterval.Эти функции, помимо callback-функции и задержки в миллисекундах - принимают ещё какие-то аргументы:>(func, [, delay, param1, param2, ...])Вопрос: а можно ли как-то переписать этот полифилл,так, чтобы при указании, в качестве какого-либо аргумента, определённого значения,эти функции setTimeout, и setInterval - возвращали значение, возвращаемое callback-функцией,а не timerId?А потом, этим новым polyfill'ом - заоверрайдить системные и стандартные функции setTimeout, и setInterval?Например:>return timerId = setTimeout(function(){return timerId = value_changed_after_some_time;}, milliseconds, "return_callback_value"); //return value_changed_after_some_time, not timerId CYKABLYAT'
>>1635466Пробовал уже. Ноль эффекта>>1635479Кек, ебанутый способ, но я на него думал положиться, если совсем решения не найду. Про лоадер такой не знал правда. думал галпом запилить. Но твой способ тоже что-то не работает. Регулярку я переделал под нужное, в выхлопе ссылки всё равно неизменные. Причём даже вручную попробовал так же замену уже в минифицированном файле сделать и там всё заменилось. Печаль, в общем.
>>1635722А вот насчёт возврата значения из функции - вообще ничего на ум не приходит...Кроме как... Вернуть promise, и обработать резульат в then callback'ом:>var result_value = false; setTimeout(function(){result_value = true;}, 20000); //true after 2 sec or 20 sed (to see timeout error)>function x(callback, result) {callback(result);}//stop, after 2s, or after 5s>function return_value(callback_function){var max_timeout = 5000;var wait = 0;return new Promise(function(resolve, reject){var timerId = setInterval(function(){if(result_value == true && wait<max_timeout){resolve(result_value);clearInterval(timerId);}else if(wait>=max_timeout){reject("Too long time: ((wait = "+wait+") >= (max_timeout = "+max_timeout+"))");clearInterval(timerId);}else{wait += 100;}},100);}).then(function(result, err){x(callback_function, result);}).catch(function(err){x(callback_function, err);});}>return_value(console.log.bind(console)); //or (console.log)А вот как вернуть его из секции then - вообще хуй знает, блядь.
>>1635656Переборы массивов чисто cpu-bound и асинхронщина не даёт ничего для этого. В таких случая обычно в другом потоке считают. У нас, считай, в web worker отправить. Люди пишут правда всякие асинхронные итераторы иногда, но, отвечаю, говна только наешься с ними. А вообще промисы нужны для любого io( запросы, чтение из файлов, события).
>>1635744Ишь ты какой умный! Одного не учёл...Там что, разве в 2к20-м, заебатые хромы для Windows XP - уже завезли?И да, ты, кажется, забыл 'http://' дописать, в том же китайском 360ExtremeExplorer,без исходника, который, и который уже меня вкрай доебал -так там вообще какая-то хуйня открывается по ссылке. Пирил.
>>1635412Захардкодить моноширный шрифт тебе уже вроде подсказалиhttps://fonts.google.com/?category=MonospaceНо лучше стремиться быть гибким. Напримерtext-overflow: ellipsis;https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflowСамое мощное это воткнуть текст в векторhttps://developer.mozilla.org/en-US/docs/Web/SVG/Element/textТак получишь суперсилу управлять любым масштабированием. Но с большой силой приходят большие заморочки, я пример сходу не смогу накидать.
>>1635831Нет. В первый раз слышу, даже если что-то дельное говорят то я вряд-ли запомню. Например уже второй раз вижу задачу, где нужно каррирование использовать, но забываю и не знаю как его использовать, потому что не практиковался с ним и не знаю как вообще код писать.
>>1635858>задачу, где нужно каррирование использоватьОдин высер охуительнее другогоСри в своих дискорд конфочках с такими же раками, нахуй ты сюда это приносишь
>>1635889>Один высер охуительнее другогоПочему ты такой злой?>Сри в своих дискорд конфочках с такими же ракамиК сожалению только 1 друг шарит в проге, и то недавно с ним познакомился>нахуй ты сюда это приносишьНе знаю что делать и ною
>>1635754Даже китайское дерьмо поддерживает async/await, а ты долбоеб, который о каком-то поддерживаемом легаси говорит.
>>1635794спасибо, вот ellipsis вообще не вариант, так как это тайтл фильма и обрезать я его не имею права (потому что это не красиво). А с масштабированием буду ебаться. Overview у меня просто обрезается до 200 символов и добавляется это троеточие
>>1629259 (OP)Джейсоны, а давайте-ка сходим на TOR'о-двач, и обсудим там няшную - НАНОБОРДУ: http://76dqlkbo4ffj475k.onion/s/res/771.html ?
Аноны, есть вопрос по отписыванию события (конкретного 'resize') в Реакте. Пикрелейтед решение, по определению ширины и высоты экрана устройства. Допустим я вставляю эту функцию в App.jsx (т.е. в главный компонент), чтобы все дети всегда знали, какой размер экрана в текущий момент. Зачем мне отписываться от этого события ? Возможно, тут момент, что я не совсем понимаю зачем вообще отписываются, но конкретно тут я знаю, что даже если мы решим загрузить App1.jsx вместо App.jsx, то происходит автоматическое размонтирование всех компонент и вроде бы, если происходит автоматическое размонтирование компонент, то уничтожается весь контект этих функций, а значит и eventListner'ов. Меня интересует ответ конкретно по моему вопросу, конкретно с этим eventListner'ом , а не вообще.
>>1635625>Svelte>Нахуй оно вообще нужно? Ты работаешь фронтом уже 5+ лет, тебя все заебало, скучно, react / angular уже знаешь, хочется поковырять че нить новенькое, опа svelte, прикольно, можно пет проектик запилить на нем.
>>1635750Да хер тебе, не поехидничаешь. Я всё-таки настроил это говно. Там порядок лоадеров был неправильный. Я и забыл, что вебпак всё снизу вверх загружает
Анончики, спасайте. Очень нужно перезаписать горячие клавиши на странице. По умолчанию, на сайте клавиши 12345 привязаны к лейблам и меняют их класс radio_unchecked на radio_cheked, когда нажимаешь клавишу. Как мне заменить эти бинды на свои через Темперманки?
Не совсем по теме, CSS.Создал flex окно, в него выводится таблица, прописал overflow: auto;Хоть и появляется прокрутка, но почему-то все равно таблица обрезается, как фиксить?
>>1635858Ты забываешь как его использовать по одной простой причине - ты не знаешь язык и у тебя нет опыта его практического использования за пределами готовых рельсов и библиотек.
>>1637126>ты не знаешь язык и у тебя нет опыта его практического использования И как тогда выйти из этого круга сансары?
Аноны, я не очень силен в верстке. У меня когнитивный диссонанс. Пикрелейтед, я выбрал : как будет выглядеть мой реакт проект для телефона с разрешением 360х640. Все поместилось, ничего за края не заходит. Однако, когда навожу на контейнер, то вижу 980 ширину. Как может контейнер с шириной 980, уместиться в 360. Чего я не понимаю?
>>1637494хотя я вот сейчас внимательно посмотрел и вижу, что пунктир от грида справа не вижу. Но это невозможно. У меня все построено на процентах. Весь контент перед глазами, как может вторая колонка гридов быть шире , чем первая. Что за хуйня
Помогите, есть сайт - https://www.languagesandnumbers.com/how-to-count-in-russian/en/rus/Там я нашел скрипты - https://www.languagesandnumbers.com/javascript/all-js-20.jsМы посылаем числа цифрами и получаем ответ буквами на самых разных языках.Мне нужны все цифры определенная часть на всех языках, хотя бы и в столбик в sql базе ноутпаде.Есть варианты - написать бота или подобрать и понять пост запрос.Собственно, яваскрипт я вообще не знаю, подскажите, пожалуйста, правильный пост запрос или объясните как скрипт работает и как его подключить к нормальному языку программирования.
>>1629259 (OP)Смарите, как JavaScript может модифицировать байты в скомилированных виндовых бинарниках - portable.exe: https://github.com/username1565/uTox_winXP/releasesЛол.
Подскажите, пожалуйста, как мне решить проблему.Есть массив данных и асинхронная функция, нужно сделать так чтобы эти данные обрабатывались не больше чем по 10, потом ожидалось подтверждение продолжения работы и так до окончания.Подумал что нужно воркерами, наткнулся на совет использования worker-farm, но не могу сделать так чтобы оно ждало между вызовами, в смысле вызывается воркер на каждый элемент без промежутка после каждого 10
Имею странную немного вещь.Развлекаюсь парсером, решил немного попарсить авито, раздел авто.Использую cheerio.Короче хочу получить ссылки на фото машины для каждого объевления.Т.е. атрибут src в нужном тэге img.Каждое объявление имеет одинаковый html.По итогу в результирующем массиве объявлений первые пять элементов какие нужно - ссылки на картинки нормальные, в соответствии с разметкой.А воо всех остальных 50 - у по результату для каждой картинки присваивается вот такой странный url "https://www.avito.st/s/a/i/0.gif?f8b9e75"Ниче не пойму
анон, объясни нюфагу одну вещь. вот у меня в разметке висит баттон с аттрибутом onclick="cock.add(228)"и в связи с этим вопрос: как блять найти эту функцию в своем проекте? и как она именно называется ? add или cock? или же cock.add?
>>1637853для начала тебе надо поделить массив на кусочки по десятьпотом с async/await ты можешь делать такarrPiece.forEach(async (val) => {await yourAsyncFunction(val);})это самое простое решение, можно еще Promise.allв любом случае следующий кусок запускаешь по ивенту, нажатие кнопки подтверждения
>>1638251>EitherЭто для try/catch? Есть либы с уже готовыми реализациями? Алсо для if/else мне maybe нужна?
>>1638236 while (urls.length > 0) { urls_slice = urlssplice(0, 10) console.log(urls_slice) urls_slice.forEach(async (val) => { let answer = await worke(val); console.log(answer) }) console.log(>end') }Не хочет, в смысле запускать-то запускает, но просто перебором не дожидаясь ответа от выполнения функции и все разом, а не по 10
>>1638173Кок - объект, ад - его метод.Так что тебе нужно найти объявление объекта кок и посмотреть код ада.Но этот вопрос слишком общий, хуй знает что там в глобал скоупе твоего проекта насрано, плюс конкретно в твоём примере .add это вообще встроенный метод глобального объекта Set: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/add.Ну или ты в жыкверях ковыряешься: https://api.jquery.com/add/.По идее твоя айдиешечка должна подсвечивать все инстансы локальной переменной при её выделении. Если не подсвечивает, просто гуглишь что-то типа "js .add".
Не покидает мысль, то что без опыта никому не сдамся, что поделать?Всего 5 вакансий без опыта в моем миллионнике
>>1638288бака, я же написал - следующий кусочек запускаешь по ивенту, откуда у тебя появилась петля?петлю так просто не прервать
>>1638476Прочитал и прорешал 1 часть КантораПрактика на задачках <== я здесь!!Прочитать и прорешать 2 часть КантораНе прокрастинирую, не играю, ничем кроме проги не увлекаюсь. Изучаю жс уже полтора месяца.С задачками ничего не получается. Ни одну задачу на легком уровне на лите решить не могу, захожу на двач ною 5 минут и выхожу обратно втуплять в задачу. Ничего не помогает, всё говорят что не нужно знать сложные алгоритмы чтобы решать легкие задачи.И дело не с технической точки зрения, что я не знаю как какие методы использовать и т.п, а с алгоритмической. Просто не могу придумать долбанное решение, а даже если придумываю, то реализовать его не могу. Например вчера открыл задачу, втуплял часик, посмотрел решения не смог его анализировать из-за сложности. НЕ ОСИЛИЛ. Зашел на вторую задачу и так по колесу сансары. Сейчас еще одну осилить пытаюсь. Пока смог рекурсивно обойти все значения, а мне нужно определенного пути. Подсказки и т.д не помогают, даже если решу по ним, то прогресс будет очень маленький или склонный к нулю.
а я сегодня рассылая реквесты на коннекты в линкедин наткнулся на самого кантора, послал ему реквестинтересно примет ли, лол
>>1638883>Не прокрастинирую, не играюВот это ты зря. Помесишь крипчиков в том же ПОЕ и потом со свежей головой вникаешь. Помогает.
>>1638865Спасибо, няш, я конечно нихуя не понял, но твои объяснения помогли мне придумать кастыль который вроде работает. Сейчас я отойду от радости и попробую дописать это дерьмо
>>1638883>> Изучаю жс уже полтора месяца.Мало, со временем придет.>>ничем кроме проги не увлекаюсьНачни. Человек лучше работает когда его действительность не монотонная, а контрастная. Что бы эффективно работать тебе придется научить себя эффективно отдыхать - и отдых принципиально не связан с компом должен быть.
Аноны, а поясните мне пожалуйста за рынок парсинга сайтов ? Он существует? Кто нибудь этим занимается?
>>1639004И еще, такая трабла. Я немного парсю авито, и загружаю картинки из объявлений. Интереснов вот что, я выше писал - при загрузке страницы атрибут src у тега img проставляется только на первых пяти страницах, в остальных пятидесяти - заглушка.И при прокручивании странички вниз какой то скрипт проставляет на место заглушек в src - уже правильные сслылки на картинки. Но суть в том что в этот момент браузер не отправляет ajax на сервер авито. То есть правильные ссылки загружены сразу, вопрос - как их найти?Может они в какой то клиентской базе данных? Редис?Как проверить ?
Тотал ньюфаг. Пилю сервер на express, как правильно сделать ээээм, живое обновление данных.Например, есть страница, на ней 40 имен Вася петя итд, рядом значение - количество голосов и кнопка проголосовать. При нажатии кнопки количество голосов за этого человека увеличивается на один, внезапно. Голоса для надежности хранятся в sql. Это всё просто и понятно, а теперь - как сделать так, чтобы при нажатии кнопки одним человеком голоса сразу обновились у всех, кто смотрит данную страницу (в ирл задаче на неё человека три будут смотреть), при этом в идеале не весь массив слать а только вася=40. Просто хз как это вообще гуглить.
>>1638883>ничем кроме прогиВо-первых, пиздишь сам себе.https://pomotodo.com/Позаписывай-ка помидорки за неделю. Если не знаком с техникой, то g:pomodoro. Таймер останавливать нельзя. Если отвлёкся -- отменяешь помидорку. Если учишься работать, то учишься работать. Уверен, фактический результат будет отличаться от твоего восприятия собственного титанического труда.Во-вторых, извольте анекдот:Молодой врач жалуется опытному на сложный случай: "Не знаю, что делать". Опытный спрашивает: "А пациент твой играет в гольф"? Молодой не понимает, как это может быть связано. Опытный говорит: "Очень просто. Если играет, то пусть прекратит. Если не играет, то пусть начнёт. И всё у него изменится".В-третьих, в интернетах ты уже должен был заметить, что все твои проблемы не то, что не уникальны, а не проблемы даже. Во тут https://www.coursera.org/learn/learning-how-to-learn/тебе разжуют, почему утренний душ это лучше место для изобретений. Или почему интенсивней биться головой об стену не помогает.>С задачками ничего не получается.А почему должно получаться? Для начала Канторович пишет хорошо, но только про простые практические вещи в простом языке. А задачки, они не про синтаксис или применение языка.Посмотри на Ютюбчике про алгоритмы и структуры данных на ЖС, посмотри на других языках, чтоб утёнком не быть, от языка оторваться. Там есть бородатый няш, который питона душит, быстро у тебя в рекомендациях появится.Конечно же я обязан на Лиспе настаивать ))))))))))))))))))))))))))))))https://www.edx.org/course/how-to-code-simple-data> уже полтора месяцаДаже если бы ты трудился по 8 часов в день, это бы получилось 250 часов всего-то. Что конечно заметно и я уверен, Илюха тебя уже научил делать некоторые забавные штуки. Но давай честно, если бы это было вот так просто, за пару часов, стали бы за это 300к платить?
>>1639334Павильный ответ -- да.Жопаскрипит, благодаря Господом нам посланному Айку и дальнейшей благой карме, достойно реализует прям все парадигмы. Это позволит тебе использовать его так, как того требует задача.Если твоя программа похожа на чистую функцию, принимает данные и однажды даёт результат, то тут функциональщиной ваще красиво. Но как только появится какое-то состояние, ты сразу упрёшься в проблемы ветвления и вывода и пойдут монадки в монадки, ризон баут ит станет просто невозможно.И с жооп похожая история. Пока твоя программа это конкретные вещи, которые делают конкретные вещи, очень красивая ЮМЛка получается. Как только ты попытаешься сделать что-то немного универсальней или даже добавить "чистых выдумок" для безопасности, всё сразу превратится в тот мемес, который все видели, ну или в "банан и все джунгли".Поэтому Жопаскрипит не только позволяет всем этим пользоваться, но и позволяет всем этим пренебрегать. Невозможно без реанимационной бригады нормально объяснить хардкорному адепту любой парадигмы, что классы это функции, а функции это объекты, а объекты могут инкапсулировать чистые функции, которые всё равно могут получать состояние из замыкания. Да даже всем смешная система типов позволяет в пару строчек такое обобщённое программирование делать, что в других языках это будет неопределённым поведением программы, не компиляеца.Большая свобода это большая ответственность. Поэтому пиши просто, пиши под задачу, пиши для людей, не злоупотребляй, не выёбывайся.
>>1639330> стали бы за это 300к платить?А че если выучить вот это все, можно сразу на 300к вкатится джуном ?
Анон, помоги, надо добавить svg на страницу. Есть собственно реакт (пик 1), есть конфиг файл-лоадера (пик 2). Но в браузере выдает вот такую хуйню (пик 3).Вот сам конфиг вебпака: https://pastebin.com/2tdSWZQu
анон, подскажи такой момент. вот у меня есть мейн страница магаза. первый блок это популярные товары, заттем слайдер и потом блок с новыми товарами. в обоих этих блоках висит абсолютно одинаковая разметка такого типа: <button id="add"><span>Купить</span></button> и вот когда я обращаюсь с этому баттону в таком виде $('#add span').addAttr('style') то у меня срабатывает почему то только на первый блок, а второму ваще поебать. в чем может быть проблема?
>>1637214Чаще экспериментировать и писать для себя всякие штуки. Попробовать написать "свой реакт", "свой стейтмендежер", "свой движок для игр", на самом примитивном уровне. Должно быть интересно. Если не интересно - то да и хуй забей
>>1639398Угу, конешно. Я уже напердолился парсеры писать на node, данные в файл, в базу, обратно на фронт(который из компонентов реакта могу собрать), хоть в жопу к дьяволу обратно отправлю. Все асинхронно, промисы + async/await. Плюс все это могу сделать и на пхп, без асинхронности естественно. И чет не отрывают меня с руками/ногами.Что бы хорошо поднимать в этом деле деньги - нужно или прям быть с хорошим опытом и разбираться в теме хорошо. Либо подскакивать кабанчиком, искать больших денег, пилить свое - но это совсем не каждому дано. Назадротить до уровня "возьмите меня на галеру на семьдесят тыщ" считаю проще.
аноны, как можно оптимизировать код, при загрузке страницы дико подтормаживаетhttps://518770.playcode.io/
Поцаны, не кажется ли вам что IT катится в пизду и становится обычной работой, как, например, слесарь или электрик где нужно вхебывать?Бабок платят уже не так много, а что бы платили много, нужно въебывать как вахтовики, т.е. реально напрягать свою жопу.
>>1639626рыночек порешал, такое в JS, питоне, пхп, шарпах и джаве.Сейчас тоьлко девопсы и комьютер сайнс хорошо себя чувствует.Ну еще сишники и разрабы под UNIX боги до сих пор
Есть 3 div с индексом -1 и фокусом при нажатии хоткея. Внутри них много кнопок. Может кто объяснить, как ограничить хоткеи только этими блоками? Ну т.е. если выбран первый, то 1/2/3/4 нажимают в нем 1/2/3/4ую кнопку, если в фокусе второй, то в нем так же. Можно с библиотеками. Щас юзаю Mousetrap, но в нем не получается.
А давайте, кратчайшим образом, стандартными функциями браузера - вычислим sha256-hash?!!Мой вариант, в две строчки:Раз:>var toHexString = function(buffer, Up) {var s = '', h = '0123456789'+((Up)?'ABCEDF':'abcdef');(new Uint8Array(buffer)).forEach((v) => { s += h[v >> 4] + h[v & 15]; });return s;}Два:>var sha256_hash = ""; crypto.subtle.digest("SHA-256", new TextEncoder().encode('data_for_hashing').buffer).then(function(res){return hash = toHexString(new Uint8Array(res)); console.log(hash); return hash;}); //async sha256-hash.
Стоит ли инвестировать время в ноду как в первую работу? В мухосрани вакансий нет, зато в Питере есть.
>>1639676Нет. В срансках пхп онли для старта. А нода - это для развития, в последствии.Астнхронность и событийно ориентированность это хорошо для общего развития
>>1639686Спорное утверждение. Нода совсем не погремушка по функционалу и скорости. И для нуба - ощутимо сложнее того же пхп. Просто специфичная штука
>>1639626Так это хорошо же. Количество вкатывальщиков снизится, рынок стабилизируется. Халява конечно кончится для любителей нихуя не делать за дорого. А если ты норм спец, и не овощь - то денег ты всегда найдешь. Вообще эта индустрия крайне инфантильна , люди зарабатывают хорошие деньги, люди близки к гигантскому рынку. А результат - бесконечное нытье про выгорание , лол.Инфантильные нытики - и это кстати хорошо для подскакивающих кабанчиков.
>>1639637>джавеНу хуй знает, дохуя вакансий на джунов-стажёров в ДС вижу.Друг пишущий на джаве говорит, что адекватных джавистов с руками отрывают.
>>1639858а толку от стажера? там платят копейки.лучше идти в макдак и получать свои 50к.а дома из стажера в джуны знания подтягивать
>>1639859Через год работы стажером ты можешь получать в полтора-два раза больше, чем в макдаке.Через год работы в макдаке ты можешь заработать варикоз и депрессию.
>>1641270нанимаю стажеров по 3-5 штук в год.отдаем им самую рутинную работу, все помои разработки.после чего они все равно сваливают.
>>1629263Аноны, привет.Хотели бы дописывать этот лютый код?там внизуhttps://2ch.hk/makaba/templates/js/sharkey.js
>>1642155Не надо ничего дописывать, лучше просто поменяй let на var, в этом скрипте, чтобы двач в старых браузерах открывался.