Как сгенерировать массив с буквами без повторов?

Мне надо сгенерировать масив с 5 неповторяющихся букв.

let characters = 'abcdefghijklmnopqrstuvwxyz';
let charactersLength = characters.length;

function generateArray(length) {

     let result = [];
     for (let i = 0; i < length; i++) {
          result.push(characters.charAt(Math.floor(Math.random() *
               charactersLength)));
     }
     return result;
}

let generatedArray = generateArray(5);
let uniqueArray = [...new Set(generatedArray)];


console.log(generatedArray);
console.log(uniqueArray);

uniqueArray просто удалаляет повторную букву, как мне сделать проверку перед тем как визивать функцию?


Ответы (1 шт):

Автор решения: UserTest013

function generateArray(length) {
  const uniqueSet = new Set();
  while (uniqueSet.size < length) {
    const candidate = 97 + Math.floor(Math.random() * 26);
    uniqueSet.add(candidate);
  }
  return [...uniqueSet].map((x) => String.fromCharCode(x));
}

console.log(generateArray(5).join(","));
console.log(generateArray(5).join(","));
console.log(generateArray(5).join(","));
console.log(generateArray(5).join(","));

→ Ссылка