Есть набор символов, которые лежат в массиве:
let myarr = ['а','б','в','г','д','е','ё','ж'];
Нам нужно создать такую функцию при помощи JavaScript, чтобы она могла принимать этот набор символов и нужную длину слова. На выходе функция должна возвращать случайное слово.
Решение задачи
Нам нужна внутренняя функция, которая будет возвращать из передаваемого массива случайный элемент.
function getRandomArrayElement(arr){ return arr[Math.floor(Math.random()*arr.length)] }
Также нам нужен цикл, который будет учитывать длину будущего слова и закидывать случайные буквы в новый массив.
function randomWordGeneratorBasedOnLength(array, wordlength){ let a = []; function getRandomArrayElement(arr){ return arr[Math.floor(Math.random()*arr.length)] }; for(let x = 0; x < wordlength; x++){a.push(getRandomArrayElement(array))}; return a.join(''); }
Пример работы функции
Делаем тестовые вызовы:
randomWordGeneratorBasedOnLength([‘а’,’б’,’в’,’г’,’д’,’е’,’ё’,’ж’], 4)
‘бжёб’
randomWordGeneratorBasedOnLength([‘а’,’б’,’в’,’г’,’д’,’е’,’ё’,’ж’], 4)
‘жёва’
randomWordGeneratorBasedOnLength([‘а’,’б’,’в’,’г’,’д’,’е’,’ё’,’ж’], 4)
‘жбёё’
randomWordGeneratorBasedOnLength([‘а’,’б’,’в’,’г’,’д’,’е’,’ё’,’ж’], 20)
‘ёдёдждгжгввжёгадегев’
randomWordGeneratorBasedOnLength([‘а’,’б’,’в’,’г’,’д’,’е’,’ё’,’ж’], 20)
‘егжёбёаеёжжеагввжега’
randomWordGeneratorBasedOnLength([‘а’,’б’,’в’,’г’,’д’,’е’,’ё’,’ж’], 20)
‘жааеёбжеаежёдгдёевёе’
Скриншот:
Информационные ссылки
JavaScript | Случайный элемент массива
JavaScript | Как перемешать массив?
Стандарт ECMAScript — https://tc39.es/ecma262/multipage/
Стандарт ECMAScript — Раздел «The Math Object» — https://tc39.es/ecma262/#sec-math-object
Стандарт ECMAScript — Раздел «21.3.2.27 Math.random ( )» — https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-math.random
Стандарт ECMAScript — Раздел «21.3.2.16 Math.floor ( x )» — https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-math.floor