Дело в том, что я хочу получать случайные значения из массива через цикл, пока они не закончатся.
Все массивы имеют всего 7 значений, и, в конце концов, чего я хочу добиться, так это получить комбинацию этих значений автоматически для генерации предложений таким же образом.
Я хочу, чтобы эти цвета, страны и дни были отсортированы случайным образом.
Это цикл, используемый для того, что он стоит:
var colours = ["White", "Red", "Black", "Purple", "Grey", "Yellow", "Blue"];
var countrys = ["Japan", "Korea", "Spain", "England", "China", "Singapur","Rumania"];
var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
for (var n = 0; n < colours.length; n++) {
document.write("My " + (n+1) + " choice is " + colours[n] + " in " + countrys[n] + " on " + days[n] + "<br>");
}
Можно определить, что при выполнении цикла он берет случайные элементы из каждого массива, например:
colours[Math.floor(Math.random() * colours.length)]
, вы получите случайный элемент из массиваcolours
.Это будет полный пример:
Вы можете создать метод, который рандомизирует массивы, а затем отображает их так, как вы это делаете.
Таким образом, вы убедитесь, что получаете комбинацию всех значений, не повторяя их.
Вместо того, чтобы выбирать параметры случайным образом и следить за тем, чтобы они не повторялись, вы можете упорядочить массивы случайным образом (
eg: shuffle
)Для этого можно использовать версию
Fisher–Yates shuffle algorithm
.демонстрация:
Другой пример использования прототипа