为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只甜甜圈 2022-01-01 20:15:49
我想为对象生成 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

...


查看完整回答
反对 回复 2022-01-01
  • 1 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信