#javascript
#javascript
Вопрос:
Как следует из названия: я хотел бы сгенерировать случайную шестизначную строку в базе 32 Крокфорда в JavaScript.
В настоящее время я генерирую случайное шестизначное число, используя это:
function genRandNum() {
return Math.floor(Math.random() * 900000) 100000;
}
Но база 32 была бы круче!
Может ли кто-нибудь порекомендовать эффективный способ сделать это, кроме простого случайного выбора из массива символов шесть раз для создания строки?
Комментарии:
1. Вы действительно пытались создать
getRandStr()
функцию, используяbase 32
метод Крокфорда?2. Нет — не домашнее задание! И я не хочу лениться, просто хотел посоветоваться, как лучше всего подойти к этому 🙂 @Javed если вы считаете, что это лучший способ сделать это, тогда я напишу это и опубликую в качестве ответа — дайте мне знать.
Ответ №1:
Number.toString(32)
вернет 32-разрядное представление числа. Это не 32-разрядное представление Крокфорда (оно используется 0123456789abcdefghijklmonpqrstuv
вместо 0123456789abcdefghjkmnpqrstvwxyz
Crockford ), но его можно очень легко изменить, поскольку число в любом случае случайное:
var key = {
'i': 'w',
'l': 'x',
'o': 'y',
'u': 'z'
};
var randomInt = Math.floor(Math.random()*1e9);
alert(randomInt.toString(32).replace(/[ilou]/, function (a) {
return key[a];
}));