JavaScript | Как генерировать случайные слова из набора символов? — efim360.ru

JavaScript | Как генерировать случайные слова из набора символов?

Есть набор символов, которые лежат в массиве:

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

 

Информационные ссылки

JavaScript | Случайный элемент массива

JavaScript | Как перемешать массив?

JavaScript | Массивы (Array)

Стандарт 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