我想为对象生成 UniqueID,通过从 ASCII 值生成 UniqueID 的字符部分,而不声明任何数组,唯一 ID 应该从 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++ }} }
1 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
你不是让这种方式比它需要的更复杂吗?只需增加一个普通数字,通过在左侧填充零将其格式化为四位数长度 - 然后通过添加A和0...
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
...
添加回答
举报
0/150
提交
取消