Вот небольшая функция, которая работает с любым количеством различных списков URL:
var listA = [
'listitem-a.php',
'listitem-b.php',
'listitem-c.php'
];
var listB = [
'listitem-1.php',
'listitem-2.php',
'listitem-3.php'
];
var listC = [
'listitem-x.php',
'listitem-y.php',
'listitem-z.php'
];
function goRandomURL(list) {
window.location = list[Math.floor(Math.random() * list.length)];
}
Затем, чтобы использовать listA
, вы должны вызвать:
goRandomURL(listA);
илипоместите его в ссылку, подобную этой:
<a href="#" onclick="goRandomURL(listA)">
или для списка B, вы должны использовать это:
<a href="#" onclick="goRandomURL(listB)">
Для справки: функция javascript Math.random()
возвращает случайное числокак число с плавающей точкой от 0 до 1 (не включая 1), и он уже заполнен в зависимости от локальной среды, поэтому вам не нужно вводить свои собственные начальные или случайные функции.Затем случайное число масштабируется по длине переданного массива, а затем округляется до целого числа для индексации массива.Это приводит к выбору случайного индекса для нашего массива.Он автоматически отслеживает длину массива, поэтому вы можете добавлять / удалять элементы из массива без какого-либо изменения кода.
РЕДАКТИРОВАТЬ - чтобы помочь вам в текущем коде.В вашем текущем коде я вижу это:
var listA = [
'orange.php';
'red.php';
'blue.php';
];
var listB = [
'gold.php';
'silver.php';
'bronze.php';
];
var listC = [
'olive.php';
'pink.php';
'purple.php';
];
Это должно быть так:
var listA = [
'orange.php',
'red.php',
'blue.php'
];
var listB = [
'gold.php',
'silver.php',
'bronze.php'
];
var listC = [
'olive.php',
'pink.php',
'purple.php'
];
И это:
goRandomURL(list) {
window.location = list[Math.floor(Math.random() * list.length)];
}
должно быть так:
function goRandomURL(list) {
window.location = list[Math.floor(Math.random() * list.length)];
}