--- title: Генератор глупых историй slug: Learn/JavaScript/First_steps/Silly_story_generator tags: - JavaScript - Задание - Изучение - Испытание - Массивы - Написание Кода - Начальный Уровень - Операторы - Переменные - Проверка - Числа translation_of: Learn/JavaScript/First_steps/Silly_story_generator original_slug: Learn/JavaScript/Первые_шаги/Создатель_глупых_историй ---
В этом испытании вам будет нужно, используя знания, полученные в статьях этого модуля, применить их для создания забавного приложения, создающего случайные глупые истории. Удачно повеселиться!
| Требования: | Перед началом выполнения этого испытания вам следует проработать все статьи в этом модуле. |
|---|---|
| Задача: | Протестировать понимание основ языка JavaScript, таких как переменные, числа, операторы, строки и массивы. |
Для начала испытания вам следует:
index.html в новой папке где-то на вашем компьютере. Там же будет храниться и CSS документ нужный для стилизации.Замечание: Так же вы можете использовать такие сайты как JSBin или Thimble для выполнения вашего испытания. Вы можете вставить HTML, CSS и JavaScript в один из этих онлайн редакторов. Если онлайн редактор, который вы используете, не имеет отдельного окна для JavaScript - не стесняйтесь вставить все скрипты в <script> элемент внутри HTML страницы.
Вам предоставили некоторый необработанный HTML/CSS, несколько текстовых строк и функций JavaScript; вам необходимо написать необходимый JavaScript-код, чтобы превратить это в рабочую программу, которая выполняет следующие действия:
Следующий скриншот показывает пример того, что должна выводить законченная программа:

Чтобы вы больше поняли идею опробуйте готовый пример (не заглядывая в исходный код!)
Следующие разделы описывают, что вам нужно будет сделать.
Начальная подготовка:
main.js в той же папке, что и index.html.main.js. Разместите его прямо перед закрывающимся </body> тегом.Задайте переменные и функции:
main.js. Это даст вам три переменные, ссылающиеся на текстовое поле "Enter custom name" (customName), кнопку "Generate random story" (randomize), и элемент снизу HTML страницы, куда будет помещена сама история {{htmlelement("p")}} (story), соответственно. Также у вас должна быть функцияrandomValueFromArray(), которая принимает массив и случайным образом возвращает оттуда один из элементов.main.js:
storyText.insertX.insertY.insertZ.Создание обработчика событий и неполной функции:
main.js. Это:
randomize, Так что, когда кнопка будет нажата - функция result() запустится.result(). В течении оставшейся части испытания вам предстоит, заполняя строчки внутри этой функции, завершить её и заставить работать должным образом.Завершение функции result():
newStory и установите её значение равным storyText. Это необходимо, чтобы мы могли создавать новую случайную историю каждый раз, когда нажимается кнопка, и функция запускается. Если бы мы внесли изменения непосредственно в storyText, мы могли бы генерировать новую историю только один раз.xItem, yItem и zItem, и сделайте их равными результату вызова randomValueFromArray() на трёх ваших массивах (результат в каждом случае будет случайным элементом из каждого массива, на который он вызывается). Например, вы можете вызвать функцию и получить её, чтобы вернуть одну случайную строку из insertX, записав randomValueFromArray (insertX).newStory - :insertx:, :inserty : и :insertz: - со строками, хранящимися в xItem, yItem и zItem. Здесь вам поможет определённый строковый метод - в каждом случае сделать вызов метода равным newStory, при этом каждый раз, когда он вызывается, newStory делается равным самому себе, но с выполненными заменами. Поэтому каждый раз, когда нажимается кнопка, эти заполнители заменяются случайной строкой. Подсказка: рассматриваемый метод заменяет только первый экземпляр найденной подстроки, поэтому вам, возможно, придётся сделать один из вызовов дважды.if добавьте другой метод замены строки, чтобы заменить имя «Боб», найденное в строке newStory, с помощью переменной name. В этом блоке мы говорим: «Если значение введено в текстовый ввод customName, замените Боба в истории этим пользовательским именем».if мы проверяем, была ли выбрана радиокнопка uk. Если это так, мы хотим преобразовать значения веса и температуры в историю из фунтов и Фаренгейта в метры и по Цельсию. Что вам нужно сделать, так это:
weight переменную, замените 300 на расчёт, который преобразует 300 фунтов в стоуны. Добавьте 'stone' в конце результата общего вызова Math.round().temperature переменную, замените 94 на расчёт, который преобразует 94 градуса по Фаренгейту в по Цельсию. Добавьте 'centigrade' в конце результата общего вызова Math.round().temperature и«300 pounds» на содержимое weight переменной.textContent переменной story (которая ссылается на абзац) равным newStory.document.querySelector('html').style.backgroundColor = 'red';
Если вы хотите, чтобы ваша работа была оценена, или застряли и хотите обратиться за помощью:
{{PreviousMenu("Learn/JavaScript/Первые_шаги/Arrays", "Learn/JavaScript/Первые_шаги")}}