Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.06.2019, 21:54
Аспирант
Отправить личное сообщение для tp-20 Посмотреть профиль Найти все сообщения от tp-20
 
Регистрация: 19.06.2018
Сообщений: 42

проблема с Math.random - выводит одно и то же значение из массива
Приветствую, форумчане!
есть простой текстовый рандомайзер:
var girls = ["Маша", "Даша", "Ксюша", "Катя"];
var girl = girls[Math.floor(Math.random() * girls.length)];

var actions = ['любит', 'не любит', 'уважает', 'видит'];
var act = actions[Math.floor(Math.random() * actions.length)];

var boys = ["Мишу", "Пашу", "Диму", "Федю"];
var boy = boys[Math.floor(Math.random() * boys.length)];

    setInterval(function(){
        $("#block").fadeOut(400, function(){
            $("#block").text("Девочка " + girl + " " + act + " мальчика " + boy).fadeIn(500);
        });
    }, 4000);


это что-то на подобие ротатор цитат.

есть три массива: мальчики, девочки и действия.
каждые 4 секунды в блоке с id='block' рандомно должны выводиться значения из массива. Но значения выводятся одни и теже. Не меняются. Однако при перезагрузке страницы эти значения меняются один раз, и опять по кругу вертятся одни и те же значения из массивов.

К примеру сейчас выводится каждые 4 секунды таким образом:
"Девочка Даша любит мальчика Федю"
"Девочка Даша любит мальчика Федю"
"Девочка Даша любит мальчика Федю"
"Девочка Даша любит мальчика Федю"

а надо так:
"Девочка Маша любит мальчика Пашу"
"Девочка Даша видит мальчика Федю"
"Девочка Ксюша не любит мальчика Федю"
"Девочка Маша уважает мальчика Пашу"
и тд.

что нужно дописать, чтобы рандом выводил как надо?
Ответить с цитированием
  #2 (permalink)  
Старый 05.06.2019, 22:00
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

<p id="block"></p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
var girls = ["Маша", "Даша", "Ксюша", "Катя"];
var actions = ['любит', 'не любит', 'уважает', 'видит'];
var boys = ["Мишу", "Пашу", "Диму", "Федю"];

setInterval(function(){
        $("#block").fadeOut(400, function() {
            var girl = girls[Math.floor(Math.random() * girls.length)];
            var act = actions[Math.floor(Math.random() * actions.length)];
            var boy = boys[Math.floor(Math.random() * boys.length)];
            $("#block").text("Девочка " + girl + " " + act + " мальчика " + boy).fadeIn(500);
        });
}, 4000);
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 05.06.2019, 22:07
Аспирант
Отправить личное сообщение для tp-20 Посмотреть профиль Найти все сообщения от tp-20
 
Регистрация: 19.06.2018
Сообщений: 42

благодарю! то, что надо!
Ответить с цитированием
  #4 (permalink)  
Старый 05.06.2019, 22:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


<p id="block"></p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
var girls = ["Маша", "Даша", "Ксюша", "Катя"];
var actions = ['любит', 'не любит', 'уважает', 'видит'];
var boys = ["Мишу", "Пашу", "Диму", "Федю"];
function show() {
            var girl = girls[Math.floor(Math.random() * girls.length)];
            var act = actions[Math.floor(Math.random() * actions.length)];
            var boy = boys[Math.floor(Math.random() * boys.length)];
            $("#block").text("Девочка " + girl + " " + act + " мальчика " + boy).fadeIn(500, wait);
        }
function wait(){
        $("#block").delay(4000).fadeOut(400, show);
};

show()
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 05.06.2019, 22:21
Аспирант
Отправить личное сообщение для tp-20 Посмотреть профиль Найти все сообщения от tp-20
 
Регистрация: 19.06.2018
Сообщений: 42

тоже интересно. спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отбором чисел из массива mindkilla Общие вопросы Javascript 10 05.11.2012 12:03
Проблема с выводом массива на консоль Vempel jQuery 1 06.08.2012 15:57
Проблема с передачей массива ajax-ом maximale AJAX и COMET 1 11.02.2012 02:20
Скрипт калькулятора (не могу добавить еще одно значение) Jee_Day Я не знаю javascript 2 22.05.2009 13:19
проблема с элементами массива Krinart Общие вопросы Javascript 3 05.09.2008 21:06