Ответы пользователя по тегу JavaScript
  • Почему не отменяются запросы на сервер (axios)?

    TMProject
    @TMProject
    Frontend developer React/Redux
    не правильно передаешь signal, это ведь свойство config, а не data

    const resTemps = await axios.post(
            '/api/files/datas',
            {
              fileNames: temps.map((temp) => temp.name),
              layer: degree,
              domain: { low: zoomDomain[0], high: zoomDomain[1] },
            },
            {
              signal: controllerTempsRef.current.signal,
            }
          );
    
          const resPressures = await axios.post(
            '/api/files/datas',
            {
              fileNames: pressures.map((pressure) => pressure.name),
              layer: degree,
              domain: { low: zoomDomain[0], high: zoomDomain[1] },
            },
            {
              signal: controllerPressuresRef.current.signal,
            }
          );
    Ответ написан
    1 комментарий
  • Как установить setTimeout внутри .each()?

    TMProject
    @TMProject
    Frontend developer React/Redux
    async function addClassAsync(element) {
      return new Promise((resolve) => {
        setTimeout(() => {
          element.addClass("show");
          resolve();
        }, 1000);
      });
    }
    
    async function processElements() {
      for (let i = 0; i < syncDate.length; i++) {
        await addClassAsync($(syncDate[i]));
      }
    }
    
    processElements()
    Ответ написан
    Комментировать
  • Как из массива целых чисел найти все возможные комбинации (не только двух чисел, а и более) дающие искомую сумму?

    TMProject
    @TMProject
    Frontend developer React/Redux
    const arr = [1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 6, 7, 8, 11, 13, 31, 31, 44, 51, 81, 65, 63];
    const target = parseInt(prompt("enter number", "52"));
    
    function findCombinations(sum, startIndex, currentCombination) {
      if (sum === target) {
        console.log(currentCombination);
        return;
      }
    
      for (let i = startIndex; i < arr.length; i++) {
        const num = arr[i];
        const newSum = sum + num;
        if (newSum <= target) {
          findCombinations(newSum, i + 1, [...currentCombination, num]);
        }
      }
    }
    
    arr.sort((a, b) => b - a); // сортируем массив по убыванию, чтобы начинать с самых длинных комбинаций
    findCombinations(0, 0, []);
    Ответ написан
    Комментировать
  • Как при движении мыши(mousemove) сделать плавную карусель, которая передвигалась бы за мышкой?

    TMProject
    @TMProject
    Frontend developer React/Redux
    В вашем коде, чтобы создать плавный переход, необходимо добавить CSS свойство "transition" для элемента, который вы двигаете, то есть для "menuList". Например, можно добавить "transition: transform 0.2s ease-out" для плавного перехода.

    Также можно добавить более сложные эффекты перехода, например, использовать "cubic-bezier" или "ease-in-out" вместо "ease-out", чтобы создать более плавный эффект.

    Например, измененный код может выглядеть так:
    const onMouseDown = (evt) => {
        let posX = evt.pageX;
        let current = 0;
    
        const onMouseMove = (evt) => {
            if (evt.pageX < posX) {
                posX = evt.pageX;
                current -= 5;
            } else {
                posX = evt.pageX;
                current += 5;
            }
    
            menuList.style.transform = `translateX(${current}px)`;
        };
    
        menuList.addEventListener('pointermove', onMouseMove);
        menuList.style.transition = 'transform 0.2s ease-out';
    };
    
    menuList.addEventListener('pointerdown', onMouseDown);

    Это создаст плавный переход, когда вы будете двигать мышь над элементом "menuList". Вы можете настроить значение свойства "transition-duration" и "transition-timing-function" для создания нужного эффекта перехода.
    Ответ написан
  • Как правильно сравнить два Sprite в PIXI js?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Для клонирования спрайта можно воспользоваться методом clone() объекта спрайта в PIXI.js:

    const clonedSprite = originalSprite.clone()

    Для сравнения спрайтов можно использовать различные свойства и методы в зависимости от того, что вы хотите сравнить. Например, вы можете сравнить текстуры спрайтов:

    if (sprite1.texture === sprite2.texture) {
      // спрайты имеют одинаковую текстуру
    }


    Или вы можете сравнить свойства спрайтов, такие как цвет или форма. Например, если вы задаете свойство shape для каждого спрайта, то вы можете проверить, совпадают ли формы спрайтов:

    if (sprite1.shape === sprite2.shape) {
      // спрайты имеют одинаковую форму
    }


    Вы также можете создать массив объектов, каждый из которых будет представлять собой спрайт и будет содержать необходимые свойства для сравнения:

    const spriteArray = [
      { sprite: sprite1, shape: "circle", color: "red" },
      { sprite: sprite2, shape: "square", color: "blue" },
      // ...
    ];
    
    const selectedSprite = // выбранный пользователем спрайт
    
    const correctSprite = spriteArray.find(
      (item) => item.shape === selectedSprite.shape && item.color === selectedSprite.color
    );
    
    if (correctSprite) {
      // пользователь выбрал правильный спрайт
    } else {
      // пользователь выбрал неправильный спрайт
    }


    Это только несколько примеров того, как можно сравнить спрайты в PIXI.js. Выбор метода зависит от ваших конкретных потребностей и структуры вашего кода
    Ответ написан
    Комментировать
  • Цикл создания инпутов?

    TMProject
    @TMProject
    Frontend developer React/Redux
    import React, { useState } from 'react';
    
    const MyComponent = () => {
      const [numOfInputs, setNumOfInputs] = useState(0);
    
      const handleNumOfInputsChange = (event) => {
        setNumOfInputs(event.target.value);
      };
    
      const inputArray = Array.from({ length: numOfInputs }, (_, index) => index + 1);
    
      return (
        <div>
          <input type="number" value={numOfInputs} onChange={handleNumOfInputsChange} />
    
          {inputArray.map((inputNum) => (
            <input key={inputNum} type="text" />
          ))}
        </div>
      );
    };
    
    export default MyComponent;
    Ответ написан
    6 комментариев
  • Как определить порядок вывода Routes в соответствие к условию?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Получаешь ответ от сервера и пишешь его в стор.
    В главном компоненте вытаскивает данные из стора, и в зависимости от роли пользователя генеришь роуты и редиректишь на нужный роут.
    Ответ написан
    Комментировать
  • Как можно закодировать строку в JS?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Посмотри в сторону вот этой библы. Она и под js и под пыху есть.
    Ответ написан
    Комментировать
  • Почему не выводится onsale?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Для начала, какое значение у тебя лежит discount на каждой итерации? Выводи в консоль и смотри. Затем ты забыл key указать.
    Учись дебажить
    Ответ написан
  • Почему возвращает Nan?

    TMProject
    @TMProject
    Frontend developer React/Redux
    {items.map(item=>{
       const discount = item.price - (item.price * item.discount / 100)
     if (discount> 0) ...
    })}
    Ответ написан
    Комментировать
  • Как получить запрос mongodb + expressjs по локальному порту?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Попробуй эту либу вместо той что используешь ты. Адекватная вещь.
    Ответ написан
    Комментировать
  • Можно ли в пропсах указать длину элементов?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Передай в пропсы количество и циклом сгенерируй это нужное количество
    Ответ написан
    Комментировать
  • Как отследить клики по модальному окну на React?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Повесить слушатель событий на корневой элемент модальных окон или же на весь документ (смотря какая структура) и при клике проверять был ли этот клик на нужный элемент или нет. Если да то изменять Стейт/контекст/стор
    Ответ написан
    Комментировать