Далее на странице...
Теперь следует выполнить самостоятельное задание по генерации случайных чисел при помощи метода random объекта Math.
Для решения этой задачи нужно будет воспользоваться функцией для генерации чисел из произвольного диапазона, о которой говорилось ранее.
Нужно создать функцию, которая будет принимать три параметра.
1. Массив, состоящий из 10 пустых элементов.
2. Начальное значение интервала
3. Конечное значение интервала.
Функция должна заполнить пустой массив случайными числами в указанном диапазоне и вывести содержимое массива на экран.
Исходный массив для примера:
var randomArray = new Array(10);
Решение №1
<script type = "text/javascript">
var randomArray = new Array(10); /* Исходный массив */
function three(from, to, emptyArray) /* Функция с тремя параметрами */
{
for (i = 0; i < emptyArray.length; i++) /* Перебираем элементы массива */
{
emptyArray[i] = Math.floor((Math.random() * (to - from + 1)) + from);
/* Присваиваем текущему элементу массива случайно сгенерированное и округленное число */
document.write(emptyArray[i] + "<br>"); /* Выводим текущий элемент массива */
}
document.write("<br>" + emptyArray); /* Выводим весь массив */
}
three(40, 50, randomArray) /* Вызываем функцию и указываем для нее параметры */
</script>
Решение №2
Далее представлено немного иное решение задачи. В нем одну функцию для генерации чисел из произвольного диапазона будем вызывать внутри другой функции.
<script type = "text/javascript">
var randomArray = new Array(10); /* Исходный массив */
function myRandom (from, to) /* Функция для генерации случайных чисел */
{
return Math.floor((Math.random() * (to - from + 1)) + from);
}
function three(start, end, emptyArray) /* Функция с тремя параметрами */
{
for (i = 0; i < emptyArray.length; i++) /* Перебираем элементы массива */
{
emptyArray[i] = myRandom (start, end); /* Присваиваем текущему элементу массива РЕЗУЛЬТАТ РАБОТЫ ФУНКЦИИ для генерации случайных чисел, ТО ЕСТЬ случайно сгенерированное и округленное число */
document.write(emptyArray[i] + "<br>"); /* Выводим текущий элемент массива */
}
document.write("<br>" + emptyArray); /* Выводим весь массив */
}
three(40, 50, randomArray) /* Вызываем функцию и указываем для нее параметры */
</script>
Два решения этой задачи очень похожи друг на друга. Однако здесь есть одно принципиальное различие.
-
В первом решении в теле цикла for, текущему элементу массива присваивалось случайно сгенерированное и округленное число следующим образом:
emptyArray[i] = Math.floor((Math.random() * (to - from +1)) + from);
-
Во втором решении текущему элементу массива был присвоен РЕЗУЛЬТАТ РАБОТЫ функции для генерации случайных чисел:
emptyArray[i] = myRandom (start, end);
Смотрите в начало программы, где в теле функции myRandom мы вернули результат ее работы при помощи оператора return.
function myRandom (from, to)
{
return Math.floor((Math.random() * (to - from + 1)) + from);
}Благодаря этому мы смогли получить результат работы функции в нужном месте программы.
Таким образом, здесь на практике продемонстрировано то, насколько удобно работать с оператором return.