Ответы пользователя по тегу JavaScript
  • Какие технологии использовать для создания сайта?

    2011mckinsey
    @2011mckinsey
    Web Developer
    Если нет динамики и требуется статичный контент - то https://gatsbyjs.com/.
    GatsbyJs - в своей нише (static site generators), пожалуй, самый популярный React Framework.
    Если посмотреть, кто использует - то на первом месте указан сайт ReactJS (https://gatsbyjs.com/showcase/);

    Огромный плюс Gatsby - не нужен сервер. Все страницы генерятся при сборке. Отсюда скорость, простота + дешевизна хостинга, все преимущества SEO итд.

    Также есть возможность использовать бессерверные функции, если потребуется со временем добавить какой-то динамики (формы email итд).
    Ответ написан
  • Как высчитать разницу в возрасте за прошедший период?

    2011mckinsey
    @2011mckinsey
    Web Developer
    Можно попробовать так:
    const getYear = (value) => {
      const timeStmp = Date.parse(value);
      return new Date(timeStmp).getUTCFullYear();
    }
    
    const monthDiff = (dateFrom) => {
      const baseYear = new Date(dateFrom).getUTCFullYear();
      const baseDate = new Date(baseYear, 11);
      const bday = new Date(dateFrom);
      return new Date(baseDate).getMonth() - bday.getMonth() + 
        (12 * (new Date(baseDate).getFullYear() - bday.getFullYear()));
    }
    
    
    const cowsFemale = cows
      .filter(res => res.gender === 'Ұрғашы')
      .reduce((accum, curVal) => {
      const currentYearBorn = getYear(curVal.bdate);
      const monthsAgo = monthDiff(curVal.bdate);
      const younger = monthsAgo <= 20;
    
      if (younger) {
        if (!accum[currentYearBorn]) {
          accum[currentYearBorn] = {
            count: 1
          } 
        } else {
          accum[currentYearBorn] = {
            count: accum[currentYearBorn].count + 1
          } 
        }
      }
      return accum
    }, {})


    Результат будет выглядеть так:
    {
     2019: {count: 11}
     2020: {count: 9}
    }
    Ответ написан