Задать вопрос
  • Почему массив с undefined не работает с методом map?

    Lynn
    @Lynn
    nginx, js, css
    методы map/foreach/filter и т.п. не работают с несуществующими элементами массива. Это явно написано в спецификации.

    https://developer.mozilla.org/en-US/docs/Web/JavaS...
    callbackFn is invoked only for array indexes which have assigned values. It is not invoked for empty slots in sparse arrays.


    Используй метод fill или статический метод Array.from (хотя это больше похоже на хак)

    const a = Array(1000).fill(1);
    или
    const a = Array.from({length:1000}, () => 1);
    Ответ написан
  • Нормально ли это часто менять языки?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Язык для программиста - средство выражения своих мыслей :) Это примерно как автомеханику иметь такой ключ, сякой ключ, да еще растакой набор ключей - каждый под свой случай. Знать два-три языка неплохо - инструмент под задачу, а не наоборот.
    Ответ написан
    Комментировать
  • Нормально ли это часто менять языки?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В начале профессионального пути это даже хорошо, позволяет расширить кругозор и стимулировать интерес. Конечно, все хорошо в меру, не стоит учить два языка одновременно или бросать один ради другого на полпути.
    Ответ написан
    Комментировать
  • Нормально ли это часто менять языки?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    ЯП — это всего лишь инструмент. Какой нравится — такой и используйте. Хотите попробовать какой-то новый — пробуйте. Ничего такого в этом нет. А уж ужасного — тем более, так что бред эти все статьи.
    Ответ написан
    Комментировать
  • TS - почему строка обрабатывается по разному в варианте с дженериком и просто строкой в mapped types?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Если кратко - "потому что так мир устроен".

    {[K in keyof T]: ...} - это специальный особый паттерн, где ты итерируешься по ключам "локального типа" внутри генерика (аналог локальной переменной внутри функции). Важен тот факт, что тип именно локальный - либо параметр генерика, либо что-то, извлеченное с помощью infer.

    В этом случае, во первых, игнорируется обработка примитивных типов, во вторых, если в T окажется массив или кортеж (если убрать ограничение на строку), то результат будет аналогичным массивом/кортежем той же конструкции, в третьих, если в T передать объединение типов, то происходит их дистрибуция, аналогичная этой, когда каждый элемент в объединении обрабатывается отдельно.

    Если чуть изменить MappedGenericStringType, то паттерн разваливается и вся вышеописанная магия исчезает:
    type MappedGenericStringType1<T, Keys extends keyof T = keyof T> = {
      [K in Keys]: any;
    };
    
    // или так
    type MappedGenericStringType2<T> = keyof T extends infer Keys extends keyof T ? {
      [K in Keys]: any;
    } : never;
    Ответ написан
    Комментировать
  • Почему не работает JSON.parse?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    - let text = `{"content":"<svg width=\"133\" height=\"510\" viewBox=\"0 0 133 510\">"}`
    + let text = '{"content":"<svg width=\\"133\\" height=\\"510\\" viewBox=\\"0 0 133 510\\">"}'

    Как получить правильный JSON:
    console.log(JSON.stringify({content: '<svg width="133" height="510" viewBox="0 0 133 510">'}))
    // '{"content":"<svg width=\\"133\\" height=\\"510\\" viewBox=\\"0 0 133 510\\">"}'
    Ответ написан
    2 комментария
  • Нужно ли ехать в Москву из региона если устраиваешься удаленно программистом?

    Если в компании нормально кадровый процесс построен и нет требования «познакомиться лично», то не нужно. Документы либо электронно подписываются, либо пересылаются почтой.
    Ответ написан
    2 комментария
  • А не разбирался ли кто-нибудь с протоколом устройств SmartLife/Tuya?

    GavriKos
    @GavriKos
    Ну проще всего посмотреть поддержку вашей кормушки в каком нить HomeAssistant. Если поддержка там есть - читать реализована она через локалку или нет.
    Отучать устройства Tuya от интернета можно - у них неплохой developer portal, через который вполне получаются креды каких нить лампочек или подобных устройств, и потом пробрасываются в тот же HA.
    На более низкий уровень - не спускался.
    Ответ написан
    Комментировать
  • В чем заключается ошибка этой логики рекурсии?

    WblCHA
    @WblCHA
    Ты не ту функцию вызываешь. У тебя мгновенно вешается красный после зелёного, естественно ты не увидишь разницы.
    document.body.style.backgroundColor = "red";
    document.body.style.backgroundColor = "green";
    // delay
    document.body.style.backgroundColor = "red";
    document.body.style.backgroundColor = "green";
    // delay
    ...


    Тебе disco вызывать надо.
    Ответ написан
    1 комментарий
  • В чем заключается ошибка этой логики рекурсии?

    @timau32
    Ну у тебя почти все правильно разве, что можно сделать его короче.

    function disco(delay, isRed) {
        setTimeout(function tick() {
            document.body.style.backgroundColor = isRed ? 'red' : 'green';
            disco(delay, !isRed)
        }, delay);
    }
    
    disco(1000);


    и в принципе потом можно по такой же логике просто подрубить setInterval вместо бесконечных генераций Таймаутов.
    Ответ написан
    Комментировать
  • Как исправить ошибку TS?

    director-rentv
    @director-rentv
    Frontend-разработчик
    Пометьте const AUTH_FIELDS как readonly

    const AUTH_FIELDS = {
      LOGIN: 'login',
      PASSWORD: 'password'
    } as const


    Тогда этот объект будет с полями литерального типа, без as const они просто мутабельный string
    Ответ написан
    Комментировать
  • Как принимать деньги от физиков и передавать их другим людям онлайн без юрлица или ИП?

    vabka
    @vabka Куратор тега Веб-разработка
    1. Юридическое лицо обязательно придется завести

    2. Налоговая в любом случае увидит тут признаки дохода и ты будешь обязан взимать НДФЛ с исполнителей, как налоговый агент.
    Вот и требование отчитываться в налоговую.
    Вот тебе, получается, нужно узнавать полные данные и ИНН исполнителей.
    Вот и закон о персональных данных кокетливо машет рукой, а РКН ждёт от тебя стопку бумаг о том, как ты с этими ПД работаешь и как защищаешь. Очень возможно, что придётся ещё потратиться, чтобы всем требованиям соответствовать.

    3. А ещё тут очень легко можно попасть на отмывание денег. Возможно, для того что ты хочешь сделать, нужно ещё получать лицензию. Стоит проконсультироваться с юристом по поводу того, какой у тебя ОКВЭД тут будет.

    4. Учитывая это - я хз как ты собираешься не получать с этого прибыль. Ибо только на то чтобы запустить такой сервис и чтобы он работал придется немало денег вложить и регулярно тратить.

    Без юридического лица можно попробовать крипту, но тут тоже есть нюансы, начиная опять же с комиссий(говорят есть варианты с небольшой комиссией) и волатильности (по идее есть стейблкоины, но и они умеют обваливаться), заканчивая серым статусом, зато всего остального получится избежать.
    Ответ написан
    14 комментариев
  • Можно ли увеличить скорость wi-fi, если она ограничена тарифом?

    @Drno
    Внутри локальной сети - да, будет работать передача данных со скоростью вифи \ роутера
    Во "внешний мир" - ограничение провайдера
    Ответ написан
    Комментировать
  • Можно ли увеличить скорость wi-fi, если она ограничена тарифом?

    @default_route
    Возможно ли обойти это

    Нет
    или всё зависит от проведённого интернет-кабеля?

    Всё зависит от шейперов/полисеров провайдера
    Ответ написан
    Комментировать
  • Что не так? Почему возникает ошибка? Что надо исправить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Зачем объявлять enum, если им не пользоваться?
    - status: "published"
    + status: QuestionStatus.PUBLISHED
    Ответ написан
    Комментировать
  • Почему выдается неправильный результат при операциях c long int в Си?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Проблема в выводе. Вы пытаетесь вывести переменную unsigned long long через спецификатор "%d". Надо использовать "%llu" какой-нибудь.
    Ответ написан
    Комментировать
  • Может ли соединение между 2 серверами на Linux быть одновременно и локальной сетью и мостом?

    Afranius
    @Afranius
    Из говорящих дольше живут те, что говорят меньше.
    А зачем такие извращения? Кабель от провайдера в свитч, а от свитча на оба компа.
    И устанавливай PPPoE - соединение по очереди хоть с первого, хоть со второго (если только пров привязку по маку не делает). Потому что одновременно с обоих PPPoE работать не будет.

    Вообще задача не понятна. Если первый комп настроен как шлюз, то при наличии локальной сети и поднятом PPPoE интернет и так будет на обоих. Зачем нужна другая сессия?
    Ответ написан
    1 комментарий
  • Как правильно работать с гит, если у тебя 2 фронтендера?

    xez
    @xez
    TL Junior Roo
    Каждый пусть создаст свою ветку и в ней делает что хочет.
    Когда разработка будет готова - нужно будет создать pull request (merge request), пройти ревью и залить уже свою ветку в мастер.
    Т.о. никто никому мешать не будет, возможные конфликты будут решаться перед мержем.
    Ответ написан
    Комментировать
  • Как правильно работать с гит, если у тебя 2 фронтендера?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Git — это система контроля версий, которая помогает работать над проектами параллельно, не мешая друг другу. А то, что вы называете «залить на гит», скорее всего, значит «отправить изменения на GitHub» (или другую платформу). Эти понятия важно различать.

    Ваш подход с очередностью неудобен и неэффективен. Никто не должен ждать, пока другой закончит свою работу. Git позволяет работать параллельно, разделяя задачи на ветки. А если возникают конфликты, они легко решаются в процессе слияния.

    Что касается описаний изменений. Ваш друг прав: нужно объяснять, что сделано, но вручную перечислять каждую строку не требуется. Git сам показывает разницу между версиями, а платформы вроде GitHub делают это наглядно.

    Вам стоит пройти курс по основам Git, чтобы понять, как он работает, зачем нужны ветки и как решать конфликты. Тогда таких споров не будет, и работа пойдёт быстрее.
    Ответ написан
    Комментировать
  • Как задать переменной тип с данными в зависимости от условия?

    @historydev
    if else должен возвращать один тип.
    - Ты не можешь указать динамический тип переменной user.

    Оборачивай свои структуры в перечисление:
    enum UserRes {
    Res(Res),
    User(User),
    ErrServ(ErrServ)
    }
    
    let user = if a == b { UserRes::Res(Res { / * ... */ }); } else { UserRes::User(User { /* ... */ }); };
    Ответ написан
    Комментировать