• Как отфильтровать такой массив объектов?

    0xD34F
    @0xD34F Куратор тега JavaScript
    data.filter(n => n.rounds[round - 1]?.position)
    Ответ написан
    1 комментарий
  • Как настроить Prettier для Git?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Откройте настройки и введите в поиск Editor: Format On Save
    Там либо отключите форматирование при сохранении, либо настройте его, чтобы форматировался не весь файл а только изменённые строки.
    62db07e93d3f8354192308.png

    Ну либо сделайте рефакторинг проекта отдельным коммитом и договоритесь в команде о соблюдении стиля в дальнейшем.

    Вы можете обеспечить единство форматирования в своей команде, создав файл конфигурации Prettier для вашего проекта. После создания такого файла и его добавления в проект вы можете быть уверены, что все члены команды используют одинаковые правила форматирования.
    Ответ написан
    Комментировать
  • Можно ли в VScode добавить кастомную область с кнопками?

    Geminix
    @Geminix
    Фуллстек nuxt, .net разработчик
    Комментировать
  • Как обновить локальную ветку задачи если develop ветка обновилась?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот это правильно

    develop (git pull)

    зайти в свою ветку branchTaskName и смержить ее с develop (git merge develop) и продолжать с задачей


    Остальное - опционально. Например нет смысле тебе обновлять локально мастер. Мастер тебе может понадобиться только для изготовления хот-фиксов на прод.
    Ответ написан
    Комментировать
  • Как можно сократить этот код?

    0xD34F
    @0xD34F Куратор тега React
    const SORT = [
      [ 'без сортировки' ],
      [ 'цена, по возрастанию',         (a, b) => a.price - b.price ],
      [ 'цена, по убыванию',            (a, b) => b.price - a.price ],
      [ 'год создания, по возрастанию', (a, b) => a.formed_in - b.formed_in ],
      [ 'год создания, по убыванию',    (a, b) => b.formed_in - a.formed_in ],
    ];

    const [ sortType, setSortType ] = useState(0);
    
    const data = useMemo(() => {
      const sortFunc = SORT[sortType][1];
      return sortFunc ? [...bands].sort(sortFunc) : bands;
    }, [ bands, sortType ]);

    <select value={sortType} onChange={e => setSortType(e.target.value)}>
      {SORT.map((n, i) => <option value={i}>{n[0]}</option>)}
    </select>
    Ответ написан
    Комментировать
  • Как сделать формирование слова на основе числа?

    v3shin
    @v3shin
    Веб-шаман
    Я бы написал так:
    Код для чисел от 0 до 199
    function n2text(n) {
        const texts = {
            0: 'нулевая',
            1: 'первая',
            2: 'вторая',
            3: 'третья',
            4: 'четвертая',
            5: 'пятая',
            6: 'шестая',
            7: 'седьмая',
            8: 'восьмая',
            9: 'девятая',
            10: 'десятая',
            11: 'одиннадцатая',
            12: 'двенадцатая',
            13: 'тринадцатая',
            14: 'четырнадцатая',
            15: 'пятнадцатая',
            16: 'шестнадцатая',
            17: 'семнадцатая',
            18: 'восемнадцатая',
            19: 'девятнадцатая',
            20: 'двадцатая',
            30: 'тридцатая',
            40: 'сороковая',
            50: 'пятидесятая',
            60: 'шестидесятая',
            70: 'семидесятая',
            80: 'восьмидесятая',
            90: 'девяностая',
            100: 'сотая',
        };
        const texts0 = {
            20: 'двадцать',
            30: 'тридцать',
            40: 'сорок',
            50: 'пятьдесят',
            60: 'шестьдесят',
            70: 'семьдесят',
            80: 'восемьдесят',
            90: 'девяносто',
            100: 'сто',
        };
        
        if (n > 200) {
            return '';
        }
        
        let str = [];
        if (n > 100) {
            str.push(texts0[100]);
            n = n % 100;
        }
        if (n === 100) {
            return texts[100];
        }
        
        if (n < 20 && n > 0) {
            str.push(texts[n]);
        } else {
            if (n % 10 === 0) {
                str.push(texts[n]);
            } else {
                str.push(texts0[Math.floor(n / 10) * 10]);
                str.push(texts[n % 10]);
            }
        }
        
        str = str.join(' ');
        return str[0].toUpperCase() + str.substr(1);
    }


    Проверка:
    spoiler
    for (let i = 0; i < 20; ++i) {
        let n = Math.floor(Math.random() * 199);
        console.log(n, n2text(n));
    }
    Ответ написан
    Комментировать
  • Фриланс верстка под Vue/React?

    pobedash
    @pobedash
    Frontend JS dev, junior Python data scientist
    Я использую два варианта.
    1) Когда создаю страницы с данными, api для которых еще не готово и их четкой структуры нет - пишу свой тестовый объект, который содержит все ключевые поля, а потом передаю его образец на бэк.
    Таким образом шаблон уже готов под работу с реальными объектами, прописаны пропсы для компонентов, в шаблоне уже есть необходимые данные.
    По факту, шаблон один и тот же для всех, поэтому если ты сперва на фронте создаешь тестовую структуру, бэку уже удобно её использовать и модернизировать, а тебе на фронте потом нужно лишь изменить некоторые пропсы, в основном названия ключей и их типы.

    2) Если уж ничего нет и нужно просто верстка html+css пишу прям с текстом из макета, просто структура и стили, которые потом уже кто будет это использовать заменит на то что ему нужно, разобьет на компоненты и пропишет данные в шаблоне.

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

    Не утверждаю что это есть супер правильно, это всего лишь мой подход. Имхо, буду рад обсудить в коментах)
    Ответ написан
    Комментировать
  • Как сделать такую сетку?

    w3bsmes
    @w3bsmes
    Куратор тега «Глупые вопросы»
    Держи, поищи готовый вариант и не делай велосипед
    Ответ написан
    1 комментарий
  • Как посчитать кол-во вызовов функции с определенным аргументом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    function counter(originalFunc) {
      const fun = function(...args) {
        args
          .filter((v, i, a) => a.indexOf(v) === i)
          .forEach((v) => fun.counts[v] = (fun.counts[v] ?? 0) + 1);
        return originalFunc(...args);
      }
      fun.counts = {};
      fun.totalRun = (arg) => fun.counts[arg] ?? 0;
      return fun;
    }
    Ответ написан
    5 комментариев
  • Нужно ли защищать токен?

    @0ffff0
    Вот тут имеется увлекательное чтение про HttpOnly флаги для защиты ваших токенов от XSS атак, SameSite и анти-CSRF токены.
    Ответ написан
    2 комментария
  • Фриланс верстка под Vue/React?

    Если апи нет, то просто верстаете так, как написано в требованиях. По-другому впринципе никак. Если api нет, то должны быть примеры json, с помощью которых можно использовать fakeApi.
    Ответ написан
    Комментировать