如何通过组合字符和数字生成UniqueID,并在ECMAScript中应用填充



我想通过从ASCII值生成UniqueID的字符部分来为对象生成UniqueID,而不声明任何数组。UniqueID应该从AA01开始并继续通过AA99,然后通过AB01到AB99,然后从AC01到AC99,AD01->AD99,->AE01->AE99。。等等。我还需要应用填充,所以UniqueID总是有4个值,比如"AC08"而不是"AC8"。

下面是我所做的一个片段。

function genUID (a,b){
var res="";
var res2="";
var res3;
if (a=>65 && a<=90) {
res = String.fromCharCode(a); 
if(b=>65 && b<=90) {
res2= String.fromCharCode(b); b++;
for(c=1;c<150;c++){
if(c<100){
(res3=c);
}
else { 
(res3= c-99);  }
console.log(res+""+res2+""+res3);
}
a++ }
}   }

你没有让这种方式变得比需要的更复杂吗?只需增加一个正常数字,通过在左侧填充零将其格式化为四位数长度,然后通过添加A0的字符代码之间的差异,将前两个数字"翻译"为其字符"等效"。。。

for(var i=1; i<3000; ++i) {
var padNum = ("000"+i).substr(-4),
uniqID =
String.fromCharCode(padNum.charCodeAt(0)+17) +
String.fromCharCode(padNum.charCodeAt(1)+17) +
padNum[2] +
padNum[3];

console.log(padNum, uniqID)
}

结果:(这里的代码段控制台不显示完整的结果,但只显示最后几行(

0001 AA01
0002 AA02
0003 AA03
0004 AA04
0005 AA05
0006 AA06
0007 AA07
0008 AA08
0009 AA09
0010 AA10
0011 AA11
...
0099 AA99
0100 AB00
0101 AB01
0102 AB02
...
0199 AB99
0200 AC00
0201 AC01
0202 AC02
...
0998 AJ98
0999 AJ99
1000 BA00
1001 BA01
1002 BA02
...

相关内容

最新更新