Skip to content

Commit

Permalink
hw25 Closures. Done, similar to HW24 additional task
Browse files Browse the repository at this point in the history
  • Loading branch information
eduard.poteshnov committed Dec 15, 2021
1 parent 1b1481e commit 9949d9c
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
12 changes: 12 additions & 0 deletions hwLesson14/hw25ClosuresVunknown/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dos4itay do sta</title>
</head>
<body>

<script src="scripts/scripts.js"></script>

</body>
</html>
25 changes: 25 additions & 0 deletions hwLesson14/hw25ClosuresVunknown/scripts/scripts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
//Сделайте функцию, каждый вызов который будет генерировать случайные числа от 1 до 100,
// но так, чтобы они не повторялись, пока не будут перебраны все числа из этого промежутка.
// Решите задачу через замыкания - в замыкании должен хранится массив чисел, которые уже были сгенерированы функцией.

function getRandomGenerator() {
const maxDiapason = 100;
let arr = [];

function fillArray(maxDiapason) {
const result = [];
for(let i = 0; i < maxDiapason; i++){
result.push(i+1);
}
return result;
}

return function getNumber() {
if (arr.length < 1) {
arr = arr.concat(fillArray(maxDiapason));
}
return arr.splice(Math.round(Math.random() * arr.length - 1), 1)[0];
}
}

const rndGenerator = getRandomGenerator(); //искомая функция. При вызове rndGenerator() вернеться случайное значение из массива

0 comments on commit 9949d9c

Please sign in to comment.