Люблю программирование, занимаюсь фронтенд-разработкой :-)
Местоположение
Россия, Москва и Московская обл., Москва

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (9)

Лучшие ответы пользователя

Все ответы (18)
  • Сайты с задачами на русском?

    @ovodovod
    I am Software Engineer
    Попробуйте позаниматься на Hexlet, у них помимо крутых курсов есть много практических задач и очень интересных.

    А по-хорошему, английский должен быть must have, без него далеко не уедешь.
    Ответ написан
    2 комментария
  • Как выровнять видео по центру блока div?

    @ovodovod
    I am Software Engineer
    Положите элемент <div class="video"></div> в <div class="container"></div> и для контейнера задайте следующие стили:
    .container {
      display: flex;
      justify-content: center;
      align-items: center; // если нужно выравнивание по вертикали
    }

    Верстка:
    <div class="container">
        <div class="video">
          <iframe width="560" height="315" src="https://www.youtube.com/embed/H1Vnys_GC4Y?controls=0&amp;start=7;autoplay=1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
        </div>
    </div>


    Про выравнивание элементов с помощью Flexbox можно почиать на HTML5Book.
    Ответ написан
    3 комментария
  • Можно ли сократить этот код, но чтобы он не лишался своих функций?

    @ovodovod
    I am Software Engineer
    С помощью простой рекурсии будут вызываться функции sayHello и getAge до тех пор, пока наш пользователь не даст ответ:

    const promt = (message = '') => window.prompt(message);
    
    function sayHello() {
      let name = promt('Здравствуйте, как вас зовут?');
      return name || sayHello();
    }
    
    function getAge() {
      let age = promt('Сколько вам лет?');
      return age || getAge();
    }
    
    function greeting() {
    	let name = sayHello();
      let age = getAge();
    
      alert(`Здравствуйте ${name}, вам ${age} лет.`);
    }
    
    greeting();


    Если вам обязательно нужно задать второй вопрос, если пользователь не ответил на первый (который по умолчанию), то данную логику можно реализовать так:

    const promt = (message = '') => window.prompt(message);
    
    function getAnswerAnyway(defaultQuestion, repeatQuestion) {
      const iter = (atempts = 2) => {
        const question = atempts === 2 ? defaultQuestion : repeatQuestion;
        let age = promt(question);
        return age || iter(atempts - 1);
      }
    
      return iter(2);
    }
    
    function greeting() {
    	let name = getAnswerAnyway(
        'Здравствуйте, как вас зовут?',
        'Я же спрашиваю, как вас зовут?',
      );
    
      let age = getAnswerAnyway(
        'Сколько вам лет?',
        'Почему молчите? Возраст укажите',
      );
    
      alert(`Здравствуйте ${name}, вам ${age} лет.`);
    }
    
    greeting();


    Рабочий код можно посмотреть здесь.
    Ответ написан
  • Как сравнить массив с объектом?

    @ovodovod
    I am Software Engineer
    Если я правильно поняла вопрос, то можно так:

    const arr=[1,2,3,4];
    const obj=[{id:3},{id:5}, {id:6}]
    
    const getValues = (obj, arr) => obj.reduce((accum, { id }) => {
      if (!arr.includes(id)) {
        accum.push(id);
      }
      return accum;
    }, []);
    
    console.log(getValues(obj, arr)); // [5, 6]


    Только лучше переменную obj как-то по другому назвать, ведь по идее у нас там массив с объектами :-)
    Ответ написан
    Комментировать
  • Как прописать, через псевдокласс, последней ссылке отмену отступа?

    @ovodovod
    I am Software Engineer
    Можно использовать такую конструкцию, тогда не придется обнулять класс у последнего элемента:

    li + li {
      margin-left: 15px;
    }


    Если нужно убрать отступ именно у ссылки, то только так:

    li:last-child a {
      margin: 0;
    }
    Ответ написан
    2 комментария