Все работает, но в слове которое учитывается при добавлении могут присутствовать одинаковые буквы. Например слово “фантаст” встречается две буквы “A”. При переборе случайным образом среди дополнительных букв могут попасться еще одна буква “A”.
Пример на картинке.
img1.jpg
У меня вопрос можно при переборе, на уникальность также проверять указанное слово, чтобы исключить лишние повторы?
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<script>
const bukvy = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З',
'И', 'Й',
'К', 'Л', 'М', 'Н', 'О', 'П', 'Р',
'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я'
];
const sogl = ['Б', 'В', 'Г', 'Д', 'Ж', 'З',
'Й', 'К', 'Л', 'М', 'Н', 'П', 'Р', 'С', 'Т', 'Ф', 'Х', 'Ц',
'Ч', 'Ш', 'Щ', 'Ъ', 'Ь'];
const glasn = ['А', 'О', 'Э', 'Е', 'И', 'Ы',
'У', 'Ю', 'Я'];
word = "ФАНТАСТ";
function showInfo(word) {
let s = sogl.slice(0).sort(_ => .5 - Math.random() );
let g = glasn.slice(0).sort(_ => .5 - Math.random() );
let length = 16 - word.length;
let endWord = Array.from({length}, (_, i) => i % 2 == 0 ? g[i/2] : s[++i/2])
return word.split("").concat(endWord)
}
function Main()
{
var t = showInfo(word);
for(var i = 0; i<t.length; i++)
{
document.getElementById("debug").innerHTML += t[i]+"\n";
}
}
</script>
</head>
<body onload="Main()">
<textarea id="debug" rows="20" cols="45"></textarea>
</body>
</html>