Задать вопрос
  • Как из массива чисел сделать объект, где ключами будут имена месяцев, а значениями их номера (элементы исходного массива)?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const months = Array.from({ length: 12 }, (n, i) => {
      return new Date(0, i).toLocaleString('en', { month: 'short' }).toLowerCase();
    });
    
    const newArr = arr.map(({ data, ...item }) => (
      data.forEach((n, i) => item[months[i]] = n),
      item
    ));
    Ответ написан
    1 комментарий
  • Nginx https, как перенаправлять на файл только по http?

    @ynblpb_spb
    дятел php
    в секции, относящейся к 80 порту пропишите location /download/archive.zip и будет счастье
    Ответ написан
    Комментировать
  • Как добавить свойство в css font?

    0xD34F
    @0xD34F Куратор тега CSS
    Мне кажется, вы пытаетесь заниматься какой-то ерундой. Гораздо проще будет вешать/снимать класс, вместо того, чтобы напрямую модифицировать body.style.

    UPD. Но конечно можно и модифицировать. Только добавлять/убирать ничего не надо, всегда вычисляйте значения свойств целиком.
    Ответ написан
    3 комментария
  • Простым языком о замыканиях?

    1. У вас есть алгоритм (функция) F, зависящий от некоторого числа переменных (значений), включая N параметров функции и некоторого количества "свободных" переменных (т.е. определённых вне тела функции, но доступных в теле функции на момент его выполнения).
    2. У вас есть другая функция G, требующая для своей работы некоторую функцию, зависящую от M параметров (причём N > M).
    3. У вас есть желание использовать функцию F как параметр функции G, однако для этого необходимо заранее задать значения всех аргументов, которые G не будет передавать в F (т.е. тех, которые не входят во множество параметров M), а также значения всех свободных переменных (иначе код функции F невозможно будет выполнить).
    4. Для реализации этого намерения вы примените замыкание (иначе просто невозможно).

    Остальное зависит от языка программирования и конкретной ситуации.
    В любом языке основная задача замыкания - связать код функции и данные, с которыми она работает. Эту же задачу связывания кода и данных решают и объекты.
    Ответ написан
    1 комментарий
  • На чем делается 3D анимация в JS?

    three.js и прочее это только библиотеки/фреймворки для удобства работы с WebGL, поэтому на вопрос "Как такая физика делается в JS" будет правильнее ответить WebGL. И если хочется понять как именно и что там работает, то начните с WebGL. А на чем конкретно в вашем случае было сделано, то это скорее всего three.js.
    Ответ написан
    Комментировать
  • Как правильно использовать es6 классы в моём случае?

    const types = [ '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A' ];
    const suits = [ 'diamonds', 'clubs', 'hearts', 'spades' ];
    
    ////////////////////
    
    class Card {
      constructor (type, suit) {
        this.type = type;
        this.suit = suit;
      } 
    }
    
    ////////////////////
    
    class Deck {
    
      constructor () {
        this.cards = [];
    
        for (const type of types) {
          for (const suit of suits) {
            this.cards.push(
              new Card(type, suit)
            );
          }
        }
      }
    
    }
    
    ////////////////////
    
    const cards = new Deck().cards;
    Ответ написан
    Комментировать
  • Нужно ли разбивать диск самостоятельно при установке Ubuntu?

    Radjah
    @Radjah
    > Дайте пожалуйста советы!
    Не прогуливай уроки русского языка и литературы.

    > 1 SSD диск
    Если вот прям в руках зудит.
    128МБ - ESP, если UEFI. Если legacy/CSM, то отдельный boot не нужен. grub даже шифрование умеет.
    1ГБ - swap. Или по размеру оперативной памяти, если гибернация нужна.
    Остальное - система и данные

    А если зуд совсем дикий, то можешь даже LVM сделать, но для UEFI всё равно отдельный раздел нужен будет за пределами LVM.

    Про отступ первого раздела от начала диска в 2048 секторов не забудь, а то загрузчик не влезет.
    Ответ написан
    Комментировать
  • Как прибавить три дня к текущей дате?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    var addDays = 3;
    var date = new Date()
    date.setDate(date.getDate() + addDays);
    Ответ написан
    4 комментария
  • Быстрый заработок на программировании?

    sabramovskikh
    @sabramovskikh
    А вы пробовали на работе об этом поговорить? Возможно есть задачи, за которые вам будут платить, если вы будете их делать в нерабочее время.
    У меня так бывает пол зп выходит за неделю "домашней" работы
    Ответ написан
    Комментировать
  • Быстрый заработок на программировании?

    nki
    @nki
    bezkart.ru готовая система лояльности
    для меня лучше зарабатывать 5 баксов в день

    Идите в такси.
    Ответ написан
    14 комментариев
  • Как вернуть результат fetch после запроса к API?

    `fetch(URL)` возвращает обещание(Promise), а вы сразу возвращаете результат. Колбэк функция передаваемая в метод then будет вызвана позже, когда закончится процесс `fetch`.
    Функция `myfunc` должна тоже возвращать Promise вот так:
    function myfunc() {
      results = [];
      return fetch(URL)
        .then((response) => response.json())
        .then((hitsJSON) => {
          return hitsJSON.hits.map(item => {
            return {
                  id: item.id,
                  url: item.previewURL,
                  tags: item.tags
              };
          }));
      });
     }
    
    // и использование 
    myfunc()
      .then((results) => {
        // do something
      })
    Ответ написан
    Комментировать
  • Как изменить строку несколько раз в цикле?

    0xD34F
    @0xD34F Куратор тега JavaScript
    for (const n of words) {
      string = string.replace(RegExp(`\\b${n}\\b`, 'gi'), m => `<a href="#">${m}</a>`);
    }

    или

    const newString = words.reduce((acc, n) => {
      return acc.replace(RegExp(`\\b${n}\\b`, 'gi'), '<a href="#">$&</a>');
    }, string);
    Ответ написан
    2 комментария
  • Что за странные запросы на веб сайт?

    Stalker_RED
    @Stalker_RED
    Китайские боты вас нашли и пытаются вам залить шеллкод или вирус.
    БЕГN!

    Заранее отвечаю на вопрос "а как они меня нашли?":
    На сканирование ВСЕХ АДРЕСОВ ipv4 по одному порту (80 же?) нужно около 25 минут. Они не лично вас искали, а вообще любые веб-сервера. И всем пытаются впарить вирус. И этим занимаются не только китайцы.
    Ответ написан
    1 комментарий
  • Зачем передавать event в компонент Vue?

    evgensenin
    @evgensenin
    Yii2 || Laravel, vue & nuxt
    Но зачем передавать: @my-event="myEvent" ?

    ты как бы говоришь "слушаю событие my-event и если оно случится (вызывая $emit снизу), то нужно запустить обработчик-функцию myEvent"

    родитель не знает всех событий и просто таким образом мы говорим ему
    Ответ написан
    2 комментария
  • Зачем передавать event в компонент Vue?

    0xD34F
    @0xD34F Куратор тега Vue.js
    зачем передавать: @my-event="myEvent" ?

    Правильнее говорить не "передавать", а "назначать обработчик события". Чисто технически - да, происходит передача функции в экземпляр компонента. Но поскольку способ передачи указывает на специфический способ использования этой функции, давайте будем придерживаться соответствующей терминологии.

    Итак, зачем назначать обработчик события? Вообще - это вам виднее, надо или не надо обрабатывать событие, и если надо, то как именно. А в данном конкретном случае - чтобы обновить значение свойства родительского компонента, отвечающего за состояние диалогового окна.

    Кстати,в явном виде делать это совсем не обязательно.

    Первый вариант - можно использовать модификатор sync при привязке значения параметра aa:

    <modal-notifications :aa.sync="isActive" :message="message"></modal-notifications>

    Метод закрытия в компоненте окна в этом случае станет выглядеть так:

    closeModalWindow() {
      this.$emit('update:aa', false);
    },

    Второй вариант - управлять состоянием окна посредством директивы v-model. Надо будет заменить имя параметра с aa на value (ну или настроить model):

    props: ['aa', 'message'], ---> props: [ 'value', 'message' ],
    :class="{'is-active': aa}" ---> :class="{ 'is-active': value }"

    Переписать метод закрытия окна:

    closeModalWindow() {
      this.$emit('input', false);
    },

    Ну а в родительском компоненте станет так:

    <modal-notifications v-model="isActive" :message="message"></modal-notifications>



    Я же делаю из потомка this.$emit('my-event', this.isActive) которое слушает родитель.

    Никто ничего просто так не "слушает". Чтобы "слушать", надо назначить обработчик соответствующего события. Что и происходит посредством @my-event="myEvent".

    эмит выше вроде бы не нужен, но без него не работает

    Чё? Какой ещё "эмит"? Нет "выше" никакого "эмита". Вы в родителе событие обрабатываете, а не порождаете.

    И еще вопрос. Что делает:
    myEvent: function(isActive) {
      this.isActive = isActive
    }

    Почему оно должно что-то принимать? Можно же просто значение из data взять.

    "Значение из data" брать бессмысленно - это и есть this.isActive. Который вам обновить надо. Обновить значением, которое присылает диалоговое окно. Значением, которое передаётся в (т.е., которое принимает) обработчик события.
    Ответ написан
    Комментировать
  • Как использовать общие файлы в проектах Node.js?

    @RidgeA
    вынести в отдельный репозиторий
    Ответ написан
    Комментировать
  • Что нужно сделать перед изучением ЯП?

    @Ambrosian
    То исть как начать думать как программист, а не как кодер.


    Программистом делает программиста не знания языка программирования.
    А знание алгоритмов, паттернов, концепций, парадигм программирования.

    Это только кодеры думают, что вся проблема только в том, чтобы изучить язык программирования. Ан нет. Изучив язык программирования, вы по сути "изучите мышь и клавиатуру", а не то, что можно с помощью них делать.

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

    Поэтому ответ - нужно программировать начинать уже. Хватит задавать вопросы на форумах.
    Ответ написан
    1 комментарий
  • Как на сайте при регистрации отсеивать не существующие emailы?

    @Ariurn
    1) Проверка с помощью регулярки (чтобы не писали абракадабру):
    function validateEMAIL($EMAIL) {
    $v = "/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/";
    return (bool)preg_match($v, $EMAIL);
    }

    2) Проверить наличие MX-записи в домене (гарантия того, что такой домен существует и обрабатывает поступающие почтовые запросы):
    if (!checkdnsrr($domain, 'MX')) {
    // domain is not valid
    }

    Но учтите, что всё это не является достаточным условием того, что такой e-mail существует на данном домене.
    Ответ написан
    5 комментариев
  • Node js однопоточен, а php многопоточен?

    @PloAl
    Ваше первое утверждение не совсем корректно.
    Если "тяжелом" коллбеке полностью синхронный код тогда верно. Если используется асинхронный код остальные запросы, ждать не будут.

    В php для обработки каждого запроса запускается новый процесс.

    Также для нескольких процессов можно использовать PM2.
    Ответ написан
    2 комментария
  • Вопрос по Random ORG?

    @Mysterion
    generateIntegers

    This method generates true random integers within a user-defined range. Your client must set the method property of its JSON-RPC request object to generateIntegers. The request must also contain an id member, which will be returned in the response.

    The request must also contain an id member, which will be returned in the response.
    Ответ написан
    Комментировать