От Skorp24:
Подтверждаю, что в скрипте Samogot'а факты повторяются. Только что произошло.
Странно, этого не должно быть. Если они всё-таки повторяются один за другим (то есть за один раз по крайней мере один факт выводится дважды), то можешь использовать это:
//Скрипт выводит факты из массива в случайном порядке так, чтобы один факт не выводился два раза подряд.
var RandomFacts = ['Fact 1', 'Fact 2', 'Fact 3', 'Fact 4', 'Fact 5', 'Fact 6', 'Fact 7', 'Fact 8', 'Fact 9', 'Fact 10', 'Fact 11'];
var FactResult;
var ResultText = '';
var CountOfFacts = 5;
for (var i = 1; i <= CountOfFacts; i++) {
FactResult = Math.floor(Math.random() * RandomFacts.length);
ResultText = ResultText + RandomFacts[FactResult] + '<br />';
RandomFacts.splice(FactResult, 1);
}
$('<span>' + ResultText + '</span>').appendTo('.RandomFactModule');
Всё-таки пришлось использовать удаление отработанных элементов из массива.
Если ты имеешь в виду, что факты повторяются после обновления страницы, то я пока не могу предложить ничего. (Может быть, я неправильно понял ТЗ, но сначала я думал, что тебе нужно чтобы факты не повторялись именно после обновления страницы, а вместо них выводились новые). Можно попробовать сохранять "отработанные" факты в отдельном массиве, и при генерации новых сверять их с фактами из этого массива, и если нужно - генерировать по новой. Я пробовал сделать это, но у меня не получилось.