Пользователь:    Пароль:    Запомнить     
 

JavaScript выводит случайную фразу

Опубликовано admin-ом в категории javascript

Частенько хочется "оживить" статический сайт - допустим создать блок, выводящий случайную фразу (например случайный анекдот для развлекательного сайта или случайный совет для познавательного). Любой серверный язык позволяет создать мощный и гибкий рандомайзер, но если сайт может находиться на бесплатном хостинге без поддержки Perl или PHP...
Знакомая ситуация? Для таких хостингов выбор по сути, один - только JavaScript.

Итак, нам нужен небольшой JavaScript, который должен:
- Хранить список текстовых строк массиве;
- Методом Math.random получить случайное число;
- Конвертировать полученное число в целое, поскольку Math.random выдает число в диапазоне от 0,0 до 1,0;
- Получить элемент массива, соответствующий конвентируемому числу;
- Вывести полученный текст с помощью document.write () или JavaScript alert ();

Создаем массив

  1. var r_text = new Array ();
  2. r_text[0] = "Нравственность крепнет, когда дряхлеет плоть.";
  3. r_text[1] = "Целомудренна та, которую никто не пожелал.";
  4. r_text[2] = "Лучше когда тебя потом простят, чем не заметят.";
  5. r_text[3] = "Хороший поцелуй стоит еще одного.";
  6. r_text[4] = "Один хороший поворот приносит большую часть одеяла.";
  7. r_text[5] = "Любовь, деньги и заботы скрыть невозможно. ";
  8. r_text[6] = "Из близких отношений происходят дети.";

Цитаты из законов Мэрфи об отношениях мужчин и женщин я использую только для примера, вы можете заменить их на любые другие фразы. Не забываем, что массив индексируются нуля. Поскольку наш массив r_text состоит из семи элементов, нам нужно целое число от 0 до 6.

Получаем случайное число

  1. var i = Math.random();


Переменная i в настоящее время содержит дробное число от 0 до 1. Мы должны превратить его в целое от 0 до 6, чтобы его можно было использовать в качестве индекса для получения строки из массива r_text.

  1. i = 7 * i;
  2. i = Math.floor(i);


Выводим текст

Отображать текст с помощью метода document.write ():

  1. document.write(r_text[i]);


Вроде бы все работает - вы сами можете убедиться в этом, разместив вышеприведенный код между тегами
  1. <script></script>


Но программисты считают, что не существует ни одной программы, которую нельзя уменьшить хотя бы на один оператор. И действительно, содержащую случайное число переменную i, которую мы получаем аж тремя строками можно запросто описать одной строкой:
  1. var i = Math.floor(7*Math.random())


Оценить работающий скрипт можно здесь, а скачать готовый исходник можно отсюда.

  отпавить с помощью email кому-нибудь   для печати   просмотр в pdf