Задать вопрос
  • Как правильно перевести алгоритм с Javascript на Lua?

    WblCHA
    @WblCHA
    Как вариант, быстренько перевести код на тайпскрипт и транспилировать его в луа:
    https://www.npmjs.com/package/typescript-to-lua
    Думаю, будет в разы быстрее и эффективнее.

    Либо можешь кастл опробовать, но там последнее обновление 4 года назад.
    https://www.npmjs.com/package/castl
    Ответ написан
    1 комментарий
  • Как скрыть текст html элемента в консоле браузера?

    WblCHA
    @WblCHA
    Если просто скрыть в хтмл, то, как и предложили выше, можно в жс хранить ответ.
    Но это не решит глобальную проблему, код жса также можно просмотреть. На фронте скрыть ничего не получится, клиент всё видит, данные надо хранить на сервере.
    Впрочем, можно усложнить жизнь. К примеру, шифровать ответы. Понятное дело, что ключ тоже будет в свободном доступе, но чтобы получить ответ уже придётся поднапрячься, особенно если разбить ключ на несколько строк и минифицировать код.
    Ответ написан
    Комментировать
  • Как узнать сколько времени осталось?

    WblCHA
    @WblCHA
    Просто взять текущее время и отнять?
    Date.now() - 1602361668 * 1000
    Ответ написан
    Комментировать
  • Как лучше найти одинаковые поля в массивах и объектах?

    WblCHA
    @WblCHA
    const uniqIds = new Set();
    const result = exampleArray.filter(({ id }) => {
        if (uniqIds.has(id)) {
          return false;
        }
        uniqIds.add(id);
        return true;
      });
    Ответ написан
  • Необязательная передача props в реакт?

    WblCHA
    @WblCHA
    Тебе надо, чтобы в onChange был андефайнд.
    В функциональном компоненте такая проблема даже не возникает:
    const Input = ({ title, type, onNameChange }) => (
      <label>
        <p>{title}</p>
        <input onChange={onNameChange} type={type} />
      </label>
    )


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

    WblCHA
    @WblCHA
    Советую почитать документацию реакта. Желательно всю. Почти все вопросы отпадут сами собой.
    https://ru.reactjs.org/docs/components-and-props.html
    Ответ написан
    1 комментарий
  • Изменить исходный код страницы сайта?

    WblCHA
    @WblCHA
    К примеру: https://www.tampermonkey.net/
    Ответ написан
    Комментировать
  • Как отрезать нужную часть строки в математической строке?

    WblCHA
    @WblCHA
    С учётом того, что глубина может меняться в любом порядке в середине выражения (к примеру: 0>1>2>3>2>3>4>3>2>3>4>3>2>1>0), то чисто регулярными выражениями данную задачу не решить (во всяком случае я не знаю способа вести подсчёт в них).
    С использованием JS это решается довольно просто.
    Как вариант:
    const getLevel = (str, level) => {
      const breckets = [...str.matchAll(/[()]/g)];
      
      let currentLevel = 0;
      let startLevelIndex = 0;
      const results = [];
      
      breckets.forEach((b) => {
        if(b[0] === '(') {
          currentLevel++;
          if(currentLevel === level) {
            startLevelIndex = b.index + 1;
          }
          return;
        }
        if(currentLevel === level) {
          results.push(str.slice(startLevelIndex, b.index));
        }
        currentLevel--;
      });
      
      return results;
    }
    const testStr = '0 + (1 + 1 + (2 + (3 + 3 + (4 + 4) + 3) + 2 + (3 + (4 + 4 + 4) + (4 + (5 + 5) + 4) + 3) + 2) + 1) + 0 + (1 + 1)';
    getLevel(testStr, 4);
    Ответ написан
    Комментировать
  • Как сгенерировать PDF с использованием своих шрифтов?

    WblCHA
    @WblCHA Автор вопроса
    Проблему решил.

    Итак, вернулся я к html-pdf и проблема была в том, куда и как я указывал абсолютный путь и, что тоже важно, как я указывал путь до фонтов в пекедже styled-components с помощью createGlobalStyle.
    А именно при укзании абсолютного пути в html-pdf он обязан заканчиваться на "/" (прим.: "file:///mnt/c/Users/usrname/Documents/repository-f..."), а в createGlobalStyle путь должен начинаться с названия папки или файла (путь релативный, относительно указанной папки в html-pdf), а не с "/". В ином случае, даже если абсолютный будет без "/", а релативный с "/", шрифты не подгрузятся (да и не только шрифты, а всё, что из той папки берётся).

    Собственно, вот и всё, осталось только svg в пдф ещё запихнуть...

    Upd.
    Через какое-то время было принято решение перейти на puppeteer, поскольку html-pdf хоть и работает, в целом, как надо, но рендерит хтмл он не 1 в 1 как браузер и в итоге приходилось фиксить костылями те или иные графические баги. Более того, была проблема с некоторым несоответствием отображения ширины некоторых букв на пиксель, что вызывало очень заметное потолстение букв в пдфки на отдалении, а это решить так и не удалось.
    Так вот, запихнуть шрифты в пупитир у меня так и не получилось, поэтому я пошёл по другому пути: сделал 2 разных пути для загрузки и для отображения пдфки, в первом открывается страничка в пупитире и запрашивается "фронтовая" пдфка со всем, чем надо.
    Далее страничка конвертируется в пдфку с правильно отрендереным хтмл.

    Отдельно отмечу, что пришлось использовать пупитир 1.18.0, по моему (или около того), поскольку в более свежих версиях пупитир упорно возвращал пустой пдф.
    Ответ написан
    Комментировать
  • Обнаружение столкновений при вращение JS?

    WblCHA
    @WblCHA
    player.x < enemy.x + enemy.w && player.x + player.w > enemy.x
    && player.y < enemy.y + enemy.h && player.y + player.h > enemy.y

    У тебя здесь не учитывается поворот фигуры и фактически расчёт идёт относительно базового положения фигуры.
    Ответ написан