Задача №3
Створити генератор, який би випадковим чином поступово генерував вказану кількість парних чисел.
Рішення:
'use strict'
/**
* @param {number} from
* @param {number} to
* @return {number}
*/
function getRandomNumber(from, to) {
if (typeof from !== 'number' || typeof to !== 'number')
throw new TypeError('Range must be set in numbers.')
return from + Math.floor(Math.random() * (to - from + 1))
}
/**
* @param {number} amount
* @param {number} [from]
* @param {number} [to]
*/
function* generateRandomEvenNumbers(
amount,
from = Number.MIN_SAFE_INTEGER,
to = Number.MAX_SAFE_INTEGER,
) {
if (typeof amount !== 'number')
throw new TypeError('Amount must be a number.')
if (amount <= 0) throw new RangeError('Amount must be positive.')
for (let i = 0; i < amount; i++) {
const number = getRandomNumber(from, to)
yield number - (number % 2)
}
}
// =============================================================================
const container = document.querySelector('.js-app')
const randomEvenNumberGenerator = generateRandomEvenNumbers(40, -1e3, 1e3)
for (const number of randomEvenNumberGenerator) {
container?.append(`${number}; `)
}
