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

Javascript 如何通过组合字符和数字生成UniqueID,并在ECMAScript中应用填充,javascript,Javascript,我想为对象生成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;

我想为对象生成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++ }
}   }

函数genUID(a,b){
var res=“”;
var res2=“”;
var-res3;
如果(a=>65&&a65&&b你不是让这个方法变得比需要的更复杂吗?只需增加一个普通数字,通过在左侧填充零将其格式化为四位数长度,然后将前两个数字“翻译”为其字符“等效”,通过添加
A
0
的字符代码之间的差异


for(var i=1;您发布的代码是非法的,因为else子句跟随for循环,而不是if-子句。以及问题/问题(除了Quaffel提到的无效语法)是吗?谢谢@Andreas,&@Quaffel。我尝试了其他选项,使用“```部分生成ID,因为第二个字母的增量不会出现,比如说,当它到达AA105时,它会变成AA6,而不是“AB6”。如果您已修复语法错误,请回答您的问题。不要在注释中隐藏相关信息,而是将其添加到您的问题中。谢谢@Andreas。我尝试了仅使用“if else”的其他选项,但ID是部分生成的,因为第二个字母的增量不会出现,例如,当它达到AA100时,它会变成AA1,而不是“AB1”。因此,问题是“我缺少什么使ID从AA01->AA99->AB01->AB99,AC01->AC99正确递增,等等。非常感谢@04FS。你的方法很好地解决了这个问题。虽然不想听起来忘恩负义,…。关于如何确保ID不以“0”结尾,有什么想法吗"?如果从AA99到AB01,而不是AB00,或者AB99->AC01而不是AC00,那会更好。感谢您的预期评论/想法。这取决于您将如何实现它。如果您提前生成它们,就像我在示例中所做的那样,使用循环,您只需跳过计数器以0结尾的所有循环迭代即可将if(i%10==0){continue;}
作为循环的第一行。您还可以编写一个函数,将这些UUID中的一个作为参数,反向执行上述步骤以再次获取整数值,如果结果以0结尾,则再加1,然后将新值转换回这样的UUID。