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

А как сделать, чтобы буквы перемешивались пополам, половина согласных и половина гласных (при этом сохраняя уникальность). Притом, что если количество букв нечетное, например “лес” состоит из трех букв (значит остается еще 13 букв которые нужно добавить до 16), то буквы добавлялись в пользу гласных. Например 7 гласных и 6 согласных.

Я добавила две переменные “sogl” и “glasn”.
<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <script>
        const bukvy = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З',
            'И', 'Й',
            'К', 'Л', 'М', 'Н', 'О', 'П', 'Р',
            'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я'
        ];
        
        const sogl = ['Б', 'В', 'Г', 'Д', 'Ж', 'З',
          'Й', 'К', 'Л', 'М', 'Н', 'П', 'Р', 'С', 'Т', 'Ф', 'Х', 'Ц',
          'Ч', 'Ш', 'Щ', 'Ъ', 'Ь'];
        const glasn = ['А', 'О', 'Э', 'Е', 'И', 'Ы',
          'У', 'Ю', 'Я'];
        
        
        let word = 'лес';
        function showInfo(word) {
            let endWord = bukvy.slice(0).sort(_ => .5 - Math.random() ).slice(0, 16 - word.length)
            return word.split("").concat(endWord)
        }
    </script>
</head>

<body onload="alert(showInfo(word));">
</body>

</html>
Ответить с цитированием