Задать вопрос
  • Как зашифровать число в буквы и обратно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Перевести в систему счисления по основанию 26 (или 52) с цифрами [A-Z] (или [A-Za-z]).
    Ответ написан
    3 комментария
  • S3 оптимизировать расходы по отдаче видео?

    @vitaly_il1
    DevOps Consulting
    - а какой объем траффика?
    - CDN (AWS Cloudfront или Cloudflare ) поможет снизить траффик на S3
    - разумеется, наибольший эффект будет если отдавать только платным пользователям. Посмотрите например S3 Pre-Signed URLs.
    Ответ написан
    Комментировать
  • Как из библиотеки JQuery перисать на читый Js?

    Kasperenysh
    @Kasperenysh
    Рецидив в особо острой форме))
    document.getElementById('collapsible').addEventListener('click', () => document.getElementById('portfolio').classList.toggle('active'))
    Ответ написан
    Комментировать
  • Как из библиотеки JQuery перисать на читый Js?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Как в России на сайте принимать платежи удобнее для клиентов из США и Индии?

    @Mordrag
    Хочу поделиться своим опытом, возможно кому-то будет полезен
    Пробовал

    1) CloudPayments - заявлено, что работает в Европе / США - по факту у меня не прошел ни один платеж, в данный момент до сих пор общаемся с менеджером и тех. поддержкой, все в недоумении почему так происходит, но решить проблему пока не вышло.

    Успешно сотрудничаю с ними в России, но в Европе/США пока никак, хотя сервис сам по себе мне нравится, конверсия высокая, Apple Pay и Google Pay подключают в 1 клик, если бы еще заработали платежи в мире, было бы супер

    2) 2Checkout - отправил проект во второй раз на модерацию... На первой его отклонили без объяснения причин и сразу заблокировали личный кабинет )) Ребята максимально мутные, на контакт не идут, но по отзывам работают с РФ и хорошая конверсия решения в Европе, США и остальном мире

    3) PayPal - это единственный успешный мой опыт принять платежи из Европы. Успешный в кавычках, потому что конверсия оплаты низкая, не у всех клиентов есть PayPal, а если его нет, то они предлагают зарегистрироваться и привязать туда карту. Регистрация состоит из ввода данных карты, полного адреса, телефона и email, можете себе представить, какая конверсия у данного решения.

    Помимо этого, там есть возвраты по надуманным причинам, расследования платежей без причин, просто берут любой платеж, замораживают сумму и начинают расследование, которое длится минимум 2 недели

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

    UPD

    4) Недавно нашел сервис https://gumroad.com/
    Для выводя средств нужен PayPal
    Прием платежей уже работает на моем аккаунте, но сам аккаунт еще на модерации
    Вывод средств обещают на PayPal 1 раз в неделю в USD
    С PayPal потом можно на расчетный счет выводить.
    Пока по выводу сказать нечего, отпишусь как только пройдет неделя
    Ответ написан
    1 комментарий
  • Есть ли разница?

    DevMan
    @DevMan
    конкретно в приведенном фрагменте – однозначно второй вариант.
    первый имеет право на жизнь только если там будет больше одной проверки, которые не зависят от верхней.
    хотя и второй вариант (в приведенном виде) можно упростить.

    вам бы почитать про метрики кода в целом, и цикломатическую сложность в частности.
    Ответ написан
    8 комментариев
  • Как активировать checkbox, если все остальные включены и наоборот?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const [ first, ...rest ] = document.querySelectorAll('[type="checkbox"]');
    const onChange = () => first.checked = rest.every(n => n.checked);
    first.addEventListener('change', () => rest.forEach(n => n.checked = first.checked));
    rest.forEach(n => n.addEventListener('change', onChange));
    Ответ написан
    1 комментарий
  • Как это понять?

    theobroma
    @theobroma
    javascript developer (ReactJS)
    1)let arr = str.split(' ');
    Возьмет строку, в данном случае 'aa bb cc aa bb aa', разобьет на части используя пробел как разделитель. В результате получим:
    let arr = ['aa', 'bb', 'cc', ' aa', 'bb', 'aa']
    2) Следующий кусок кода просто произведет подсчет одинаковых частей.
    return arr.reduce((acc, rec, index) => {
        return (typeof acc[rec] !== 'undefined')
          ? { ...acc, [rec]: acc[rec] + 1 }
          : { ...acc, [rec]: 1 }
      }, {});
    Рассмотрим его подробнее. Начнем с аргументов:
    acc – последний результат вызова функции, он же «промежуточный результат».
    rec – текущий элемент массива, элементы перебираются по очереди слева-направо.
    index – номер текущего элемента.

    Что собственно происходит:
    -typeof acc[rec] !== 'undefined' проверит есть ли в объекте 'acc' ключ 'rec'.
    - и если мы уже встречали такой( например когда "aa", но уже во второй раз ), тогда изменить значение этого ключа прибавив 1.{ ...acc, [rec]: acc[rec] + 1 }
    - если же такого ключа еще не было, то создадим его со значением 1, ибо он в первый раз попался{ ...acc, [rec]: 1 }
    Ответ написан
    6 комментариев
  • Добавить класс к div в коде JS?

    mirniycruxix
    @mirniycruxix
    Добавьте строчку newElement.classList.add('Class');, где Class - имя вашего класса.

    var downloadButton = document.getElementById("download");
    var counter = 10;
    var newElement = document.createElement("div");
    newElement.innerHTML = "You can download the file in 10 seconds.";
    var id;
    
    newElement.classList.add('Class');
    
    downloadButton.parentNode.replaceChild(newElement, downloadButton);
    
    id = setInterval(function() {
        counter--;
        if(counter < 0) {
            newElement.parentNode.replaceChild(downloadButton, newElement);
            clearInterval(id);
        } else {
            newElement.innerHTML = "You can download the file in " + counter.toString() + " seconds.";
        }
    },  1000);
    Ответ написан
    1 комментарий
  • Как внутри строки отсортировать слова в зависимости от содержащихся в них цифр?

    @n1ksON
    мидл
    Как вариант:
    string.split(' ')
      .sort((a, b) => parseInt(a.match(/\d+/)) - parseInt(b.match(/\d+/)))
      .join(' ');
    Ответ написан
    Комментировать
  • Не запускается игра на JavaScript. Что делать?

    SagePtr
    @SagePtr
    Еда - это святое
    Рекомендую пройтись по коду линтером и привести его в более читаемый вид. Сразу отловите подозрительные места, вроде забытой закрывающейся фигурной скобки после тела цикла.
    На худой конец - скормите код сервису вроде jsbeautifier, если вам совсем лень нормально IDE настроить и программируете в блокноте.
    Ответ написан
    Комментировать
  • Как правильно сгруппировать и сделать сортировку массива объектов по определённому ключу?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Собираем вспомогательный объект вида { key: первый индекс, где встречается key }:

    const keyIndex = arr.reduce((acc, n, i) => (acc[n.key] ??= i, acc), {});

    Затем выполняем сортировку по двум параметрам, минимальному индексу и id. Можно отсортировать существующий массив:

    arr.sort((a, b) => (keyIndex[a.key] - keyIndex[b.key]) || (a.id - b.id));

    Или собрать отсортированный новый:

    const sorted = (arr, keys) => arr
      .map(n => [ n ].concat(keys(n)))
      .sort((a, b) => {
        let diff = 0;
        for (let i = 0; ++i < a.length && !(diff = a[i] - b[i]);) ;
        return diff;
      })
      .map(n => n[0]);
    
    
    const sortedArr = sorted(arr, n => [ keyIndex[n.key], n.id ]);
    Ответ написан
    1 комментарий
  • JS. Как правильно синхронизировать события?

    WblCHA
    @WblCHA
    Если по какой-то причине вышеперечисленные варианты не подходят, то остаётся только одно:
    btnNode.addEventListener('click', priorityFunc, true);
                                                    ^^^^
    Ответ написан
    Комментировать
  • Работа с деньгами в php, лишние копейка в ту или иную сторону при округлении?

    Adamos
    @Adamos
    Я вам страшное скажу: в операциях с деньгами не всегда важна математическая точность.
    Но очень важно, чтобы результат был в точности такой, как в бухгалтерии.
    А там далеко не всегда царит формальная математика, особенно когда числа, которые потом сводятся к одному результату, по-разному налогооблагаются.
    Задача программиста здесь - не в том, чтобы компьютер считал правильно, а чтобы результат сошелся до копейки с 1С-кой, например.
    Ответ написан
    Комментировать
  • Как правильно решить задачу на переворот цифр?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const reverse = number => +[...`${Math.abs(number)}`].reverse().join('');
    Ответ написан
    9 комментариев
  • Как можно оптимизировать код решения этой задачи?

    0xD34F
    @0xD34F Куратор тега JavaScript
    function getWinner(points) {
      const [ a, b ] = points.reduce((acc, n) => (
        n.split('-').forEach((m, i) => acc[i] += +m),
        acc
      ), [ 0, 0 ]);
    
      return a === b
        ? undefined
        : a < b ? 2 : 1;
    }

    UPD. Всё равно слишком длинно. Вот так хорошо будет:

    const getWinner = points => [ 2, , 1 ][Math.sign(eval(points.join('+'))) + 1];

    Всё, "оптимизировал".
    Ответ написан
    1 комментарий
  • Можно ли перевести растр в вектор?

    profesor08
    @profesor08
    Твоя картинка размером 506х390, это 197340 пикселей. У каждого пикселя свой цвет. Вот и переводи эти пиксели в шейпы с заданным цветом. Можно оптимизировать: шейпы одного цвета, расположенные радом, объединять в один. Собственно на этом месте и заканчиваются все игры с картинкой без потери качества. Толку от этого ноль, только оверхед ради просадки производительности, потому что по сути это то-же растровое изображение, только реализованное иначе.

    Отвечая на вопрос:
    Есть ли способ это сделать без потерь в деталях?

    Можно, но смысла в этом нет.
    Ответ написан
    Комментировать
  • Как включить музыку при загрузке страницы?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Пожалуйста, не делайте так.
    Во-первых, это очень раздражает, т.к. на ваш сайт могут заходить люди в разное время суток и при разных обстоятельствах.
    Во-вторых, это мгновенно делает ваш сайт куском говна. Нет ничего дерьмовее непредсказуемого поведения сайта. Сайт, на котором играется музыка/видео, вылезают какие-то всплывашки, чатики, счетчики и прочее мигающее, ездящее, прыгающее, вращающееся и новящевое - это говно. Такие сайты делаются лохами для лохов.
    Ни один нормальный человек не будет оставаться на таком сайте дольше 10 секунд. Конкурентов много, не думайте, что ваш сайт такой уникальный.
    Ответ написан
    2 комментария