Задать вопрос
  • Как изменить масштаб текста в Intellij Idea?

    1Serg
    @1Serg
    Нажать Ctrl+Shift+A, набрать font size и включить изменение маштаба по ctrl+колесико мыши.
    ssmaker.ru/d7708792.png
    Ответ написан
    3 комментария
  • Как найти 3 одинаковых числа, идущих подряд в массиве js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    для первой версии решения учебного задания можно и «на пальцах»:
    сравнивать с двумя предыдущими
    const has3 = arr => {
      for (let i = 2; i < arr.length; i++) {
        if (arr[i] === arr[i - 1] && arr[i] === arr[i - 2]) {
          return true;
        }
      }
      return false;
    }
    
    has3([1,2,3,3,4,5,5,5,6]) // true
    has3([1,2,3,3,4,5,5,6,6]) // false


    Подумайте, как можно сделать решение более универсальным, чтобы задавать параметром необходимое число идущих подряд, которое ищем.
    Ответ написан
    9 комментариев
  • Почему при обновлении сайта, в placeholder появляется что-то невидимое, из-за чего placeholder не виден?

    Ankhena
    @Ankhena Куратор тега HTML
    Нежно люблю верстку
    Вот ваши пробелы
    62cdbbfc2b0f0336639059.jpeg
    Ответ написан
    Комментировать
  • Где можно взять массив стран на русском для javascript?

    webanet
    @webanet
    var c = [
        'Афганистан',
        'Албания',
        'Антарктика',
        'Алжир',
        'Американское Самоа',
        'Андора',
        'Ангола',
        'Антигуа и Барбуда',
        'Азербайджан',
        'Аргентина',
        'Австралия',
        'Австрия',
        'Багамские Острова',
        'Бахрейн',
        'Бангладеш',
        'Армения',
        'Барбадос',
        'Бельгия',
        'Бермудские Острова',
        'Бутан',
        'Боливия',
        'Босния и Герцеговина',
        'Ботсвана',
        'Остров Буве',
        'Бразилия',
        'Белиз',
        'Британская территория в Индийском океане',
        'Соломоновы Острова',
        'Британские Виргинские острова',
        'Бруней',
        'Болгария',
        'Мьянма',
        'Бурунди',
        'Белоруссия',
        'Камбоджа',
        'Камерун',
        'Канада',
        'Кабо-Верде',
        'Каймановы острова',
        'Центральноафриканская Республика',
        'Шри-Ланка',
        'Чад',
        'Чили',
        'Китайская Народная Республика',
        'Остров Рождества',
        'Кокосовые острова',
        'Колумбия',
        'Коморы',
        'Майотта',
        'Республика Конго',
        'Демократическая Республика Конго',
        'Острова Кука',
        'Коста-Рика',
        'Хорватия',
        'Куба',
        'Кипр',
        'Чехия',
        'Бенин',
        'Дания',
        'Доминика',
        'Доминиканская Республика',
        'Эквадор',
        'Сальвадор',
        'Экваториальная Гвинея',
        'Эфиопия',
        'Эритрея',
        'Эстония',
        'Фарерские острова',
        'Фолклендские острова',
        'Южная Георгия и Южные Сандвичевы острова',
        'Фиджи',
        'Финляндия',
        'Аландские острова',
        'Франция',
        'Французская Гвиана',
        'Французская Полинезия',
        'Французские Южные и Антарктические территории',
        'Джибути',
        'Габон',
        'Грузия',
        'Гамбия',
        'Палестина',
        'Германия',
        'Гана',
        'Гибралтар',
        'Кирибати',
        'Греция',
        'Гренландия',
        'Гренада',
        'Гваделупа',
        'Гуам',
        'Гватемала',
        'Гвинея',
        'Гайана',
        'Республика Гаити',
        'Остров Херд и острова Макдональд',
        'Ватикан',
        'Гондурас',
        'Гонконг',
        'Венгрия',
        'Исландия',
        'Индия',
        'Индонезия',
        'Иран',
        'Ирак',
        'Ирландия',
        'Израиль',
        'Италия',
        'Кот-д’Ивуар',
        'Ямайка',
        'Япония',
        'Казахстан',
        'Иордания',
        'Кения',
        'КНДР',
        'Республика Корея',
        'Кувейт',
        'Киргизия',
        'Лаос',
        'Ливан',
        'Лесото',
        'Латвия',
        'Либерия',
        'Ливия',
        'Лихтенштейн',
        'Литва',
        'Люксембург',
        'Макао',
        'Мадагаскар',
        'Малави',
        'Малайзия',
        'Мальдивы',
        'Мали',
        'Мальта',
        'Мартиника',
        'Мавритания',
        'Маврикий',
        'Мексика',
        'Монако',
        'Монголия',
        'Молдавия',
        'Черногория',
        'Монтсеррат',
        'Марокко',
        'Мозамбик',
        'Оман',
        'Намибия',
        'Науру',
        'Непал',
        'Нидерланды',
        'Кюрасао',
        'Аруба',
        'Синт-Мартен',
        'Бонэйр, Синт-Эстатиус и Саба',
        'Новая Каледония',
        'Вануату',
        'Новая Зеландия',
        'Никарагуа',
        'Нигер',
        'Нигерия',
        'Ниуэ',
        'Норфолк',
        'Норвегия',
        'Северные Марианские острова',
        'Внешние малые острова США',
        'Микронезия',
        'Маршалловы Острова',
        'Палау',
        'Пакистан',
        'Панама',
        'Папуа — Новая Гвинея',
        'Парагвай',
        'Перу',
        'Филиппины',
        'Острова Питкэрн',
        'Польша',
        'Португалия',
        'Гвинея-Бисау',
        'Восточный Тимор',
        'Пуэрто-Рико',
        'Катар',
        'Реюньон',
        'Румыния',
        'Россия',
        'Руанда',
        'Сен-Бартелеми',
        'Острова Святой Елены, Вознесения и Тристан-да-Кунья',
        'Сент-Китс и Невис',
        'Ангилья',
        'Сент-Люсия',
        'Сен-Мартен (Франция)',
        'Сен-Пьер и Микелон',
        'Сент-Винсент и Гренадины',
        'Сан-Марино',
        'Сан-Томе и Принсипи',
        'Саудовская Аравия',
        'Сенегал',
        'Сербия',
        'Сейшельские Острова',
        'Сьерра-Леоне',
        'Сингапур',
        'Словакия',
        'Словения',
        'Сомали',
        'Южно-Африканская Республика',
        'Зимбабве',
        'Испания',
        'Южный Судан',
        'Судан',
        'Западная Сахара',
        'Суринам',
        'Шпицберген и Ян-Майен',
        'Свазиленд',
        'Швеция',
        'Швейцария',
        'Сирия',
        'Таджикистан',
        'Таиланд',
        'Того',
        'Токелау',
        'Тонга',
        'Тринидад и Тобаго',
        'Объединённые Арабские Эмираты',
        'Тунис',
        'Турция',
        'Туркмения',
        'Теркс и Кайкос',
        'Тувалу',
        'Уганда',
        'Украина',
        'Республика Македония',
        'Египет',
        'Великобритания',
        'Гернси',
        'Джерси',
        'Остров Мэн',
        'Танзания',
        'Соединённые Штаты Америки',
        'Виргинские Острова',
        'Буркина-Фасо',
        'Уругвай',
        'Узбекистан',
        'Венесуэла',
        'Уоллис и Футуна',
        'Самоа',
        'Йемен',
        'Замбия',
    ];
    Ответ написан
    2 комментария
  • Как сохранить текст внутри textarea в localstorage?

    QuayS1de
    @QuayS1de
    <textarea></textarea>
    <button class="save">Сохранить</button>
    <button class="clear">Очистить</button>


    let textarea = document.querySelector('textarea')
    let save = document.querySelector('.save')
    let clear = document.querySelector('.clear')
    
    save.addEventListener('click', function(){
        localStorage.setItem('value', textarea.value)
    })
    
    clear.addEventListener('click', function(){
        localStorage.removeItem('value')
    })
    
    localStorage.getItem('value') !== null
        ? textarea.value = localStorage.getItem('value')
        : textarea.value = ''
    Ответ написан
    6 комментариев
  • Почему не работает jquery?

    Geminix
    @Geminix
    Фуллстек nuxt, .net разработчик
    У вас рядом с вашим файлом, файл jquery.min.js лежит? Можете подключить из библиотеки
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    </head>
    Ответ написан
    2 комментария
  • Как сделать скрипт, который будет спрашивать букву, искать её в строке и заменять её символом, если она есть?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Можно в ещё одном цикле искать очередную позицию угаданной буквы через indexOf и конструировать новую строку, заменяя подчёркивание в этой позиции на букву.
    spoiler
    game:
    while (true) {
      const Game = {
        countAttempts: 0,
        wordsList: ['javascript', 'python', 'computer', 'aboba'], //слова, которые надо отгадывать
        badLetters: [], //буквы, которые не были найдены в слове
        rndWordChoice: function () {
          //рандомайзер для выбора слова
          return this.wordsList[Math.floor(Math.random() * this.wordsList.length)];
        },
      };
    
      let word = Game.rndWordChoice();
    
      let underlineWord = '_'.repeat(word.length);
      
      round:
      while (true) {
        alert(`Угадайте слово - ${underlineWord}\nБукв в слове - ${underlineWord.length}\nНеудачных попыток - ${Game.badLetters.length}`)
        const userInput = prompt('Введите букву:');
        if (userInput == null) break game;
        if (userInput.length !== 1) {
          alert('Нужна ровно 1 буква');
          continue;
        }
        const letter =  userInput.toLocaleLowerCase();
        if (word.includes(letter)) {
          let index = word.indexOf(letter);
          while (index > -1) {
            underlineWord = underlineWord.substring(0, index) + letter + underlineWord.substring(index + 1);
            index = word.indexOf(letter, index + 1);
          }
        } else {
          Game.badLetters.push(letter);
        }
      }
    }
    Случайный выбор слова заменил на однострочник.

    Но вся идея реализации и модель данных че-т так-себе. Мелкие алёрты треш.
    Ответ написан
    4 комментария
  • Как мне укоротить код, но так, чтобы функционал не менялся?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const declination = (number, titles) => titles[
      (number % 100 > 4 && number % 100 < 20)
        ? 2
        : [2, 0, 1, 1, 1, 2][(number % 10 < 5) ? number % 10 : 5]
      ];
    
    const games = {
      rps: ['камень', 'ножницы', 'бумага'],
      rpsls: ['камень', 'ножницы', 'бумага', 'ящерица', 'спок']
    };
    const beats = {
      камень: ['ножницы', 'бумага'],
      ножницы: ['бумага', 'ящерица'],
      бумага: ['камень', 'спок'],
      ящерица: ['бумага', 'спок'],
      спок: ['ножницы', 'камень'],
    };
    const winMsgs = ['Ничья', 'Вы победили', 'Компьютер победил'];
    
    const gameNames = Object.keys(games).map((k) => `${k} (${games[k].join('-')})`);
    const selectGameMsg = `Выберите режим игры:\n${gameNames.join('\n')}\nдругое значение для завершения`;
    while (true) {
      let gameMode = prompt(selectGameMsg);
      let choices = games[gameMode] ?? null;
      if (choices === null) {
        break;
      }
      let userChoiceMsg = `Выберите свой ход:\n${choices.join('\n')}\nочки - показать счётчик побед\nвыход - завершить игру`;
      let userWins = 0;
      let compWins = 0;
      while (true) {
        let userChoice = prompt(userChoiceMsg);
        if (userChoice === 'выход') {
          break;
        }
        if (userChoice === 'очки') {
          alert(`Ваших побед: ${userWins}\nПобед компьютера: ${compWins}`);
        }
        if (!choices.includes(userChoice)) {
          continue;
        }
        let compChoice = choices[Math.floor(Math.random() * choices.length)];
        let winner = 0;
        if (beats[userChoice].includes(compChoice)) {
          winner = 1;
          userWins += 1;
        } else if (beats[compChoice].includes(userChoice)) {
          winner = 2;
          compWins += 1;
        }
        alert(`Ваш выбор: ${userChoice}\nВыбор компьютера: ${compChoice}\n${winMsgs[winner]}`);
      }
      let finalMsg = 'Ничья';
      let diff = userWins - compWins;
      if (diff > 0) {
        finalMsg = `Вы выиграли с перевесом в ${diff} ${declination(diff, ['очко', 'очка', 'очков'])}`;
      } else if (diff < 0) {
        finalMsg = `Компьютер выиграл с перевесом в ${-diff} ${declination(-diff, ['очко', 'очка', 'очков'])}`;
      }
      alert(`Ваших побед: ${userWins}\nПобед компьютера: ${compWins}\n${finalMsg}`);
    }
    Ответ написан
    Комментировать
  • Как мне укоротить код, но так, чтобы функционал не менялся?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    отрефакторите, вынесите куски кода в функции, текстовые строки в константы, да и вообще используйте форматированные строки

    let message = `Ничья
    Вы победили ${userScore} раз
    Компьютер ${computerScore} раз`
    Ответ написан
    Комментировать
  • Почему не работает vertical-align: middle?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Это свойство для inline элементов. причем применяется оно непосредственно к элементу, а не его родителю (у вас к обоим почему-то).
    У вас ссылка имеет стиль display: flex, а значит является блочной.
    Можете использовать display: inline-flex, чтобы сделать элемент инлайновым (Хотя это не поможет, так как элемент являтся прямым потомком флекс-контейнера, и всегда будет блочным).
    Или, раз уж у вас див является флекс-контейнером, использовать flex-свойства.

    div {
      display: flex;
      align-items: center;
    }
    Ответ написан
    Комментировать
  • Как вычесть 1 число из 2 в массиве js?

    Fragster
    @Fragster
    помогло? отметь решением!
    Надо немного подумать над такой сущностью, как "переменная" и зачем она нужна
    let numbers = this.read()
            return numbers[0] - numbers[1]
    Ответ написан
    Комментировать
  • Плавное появление сверху ul списка (width, height = 100%)?

    @rifat2125
    Здравствуйте!
    Вы можете посмотреть Рабочий пример

    Дело в том, что если вы используете display: none/flex, плавной анимации не будет.
    В примере выше, мы используем значение высоты (как и у вас), только добавляем самому меню overflow: hidden, чтобы скрыть содержимое.
    Ответ написан
    2 комментария
  • Как мне решить эту задачу про рандомные числа?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Упростим пример до всего двух корзинок.
    Случайные (дробные) числа от 0 до 2 раскладываем в ведёрки [0..1) и [1..2)
    Квадратная скобка означает, что само число входит в диапазон, круглая скобка — что не входит.

    Считаем, сколько в каком из ведёрок оказалось в итоге.

    В цикле от 0 до 100000 генерим случайное число от [0..2):
    for (let i = 0; i < 100000; i++) {
      const rnd = Math.random() * 2;
      if (rnd < 1) {
        // в первую корзинку
      } else {
        // во вторую
      }
    }

    Как сделать эти ведёрки? Можно массивами – и добавлять очередное случайное число в одну из корзинок. Потом посмотреть на длины массивов.

    А можно просто завести счётчики – переменные, которые сначала == 0. Получили случайное число – увеличили один из счётчиков на 1.

    Дальше сами.
    Ответ написан
    2 комментария
  • Можно ли заменить .repeat() в js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    const letter = '&';
    const length = 5;
    
    let result = '';
    for (let i = 0; i < length; i++) {
      result += letter;
    }
    
    alert(result); // &&&&&
    Ответ написан
    Комментировать
  • Можно ли заменить .repeat() в js?

    ronnie85
    @ronnie85
    Fullstack Dev
    Как вариант
    const col = 20;
        const line = 7;
        const symbol = '&';
    
        let result = '';
        for (let i = 0; i < line; i++) {
            for (let j = 0; j < col; j++) {
                result += symbol;
            }
            result += "\n";
        }
    
        alert(result);
    Ответ написан
    Комментировать