Выполняю код в BAS с помощью "Выполнить код", а он в 90% случаев виснет на данном участке кода.
Код генерации логина. Логика кода:
- Берется имя и фамилия (пример: Александра Попова). Меняется на нижний регистр (александра попова). Применяется транслитерация (aleksandra popova). - Переменные "englishFirstName" и "englishLastName"
- Генерируется случайная длина и случайный текст (Пример: nsfd). - Переменная "randomText"
- Генерируется случайная длина и случайные цифры (Пример: 324). - Переменная "randomNumber"
- Всё это склеивается в логин (Пример: aleksandrapopovansfd324). - Переменная "[[USER_LOGIN]]"
var [[USER_LOGIN]]
function englishStringConverter(string) { //Функция транслитерации (Из русских букв - в английские)
string = string.toLowerCase()
for (var i = 0; i < string.length; i++) {
var englishChar = [[GENERATOR_ENGLISHCHARS]][string[i]] //GENERATOR_ENGLISHCHARS - объект вида {в: 'v', г: 'g'} со всеми буквами
string = string.replace(string[i], englishChar)
}
return string
}
var englishFirstName = englishStringConverter([[USER_FIRSTNAME]]) //Имя английскими буквами
var englishLastName = englishStringConverter([[USER_LASTNAME]]) //Фамилия английскими буквами
var randomText = '' //Случайный текст
var minTextLength = 3
var maxTextLength = 4
var randomTextLength = Math.floor(Math.random() * (maxTextLength - minTextLength + 1) + minTextLength)
for (var i = 0; i < randomTextLength; i++) {
randomText += [[GENERATOR_LOWERCASE]][Math.floor(Math.random() * [[GENERATOR_LOWERCASE]].length)]
}
var randomNumber = '' //Случайные числа
var minNumberLength = 1
var maxNumberLength = 2
var randomNumberLength = Math.floor(Math.random() * (maxNumberLength - minNumberLength + 1) + minNumberLength)
for (var i = 0; i < randomNumberLength; i++) {
randomNumber += [[GENERATOR_NUMBERS]][Math.floor(Math.random() * [[GENERATOR_NUMBERS]].length)]
}
[[USER_LOGIN]] = englishFirstName + englishLastName + randomText + String(randomNumber) //Готовый логин
Почему виснет не понимаю. Может метод replace затратный, может циклов много... Уже всю голову сломал.
Генерирует отлично, но зависает еще лучше.