Показать сообщение отдельно
  #7 (permalink)  
Старый 09.09.2022, 09:24
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Все работает, но в слове которое учитывается при добавлении могут присутствовать одинаковые буквы. Например слово “фантаст” встречается две буквы “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>

Последний раз редактировалось Olga27, 09.09.2022 в 09:32.
Ответить с цитированием