从 3 个字母创建唯一的密钥

Dir*_*olf 5 javascript

我正在尝试使用字母表创建一个唯一的密钥;我已经设法解决了这个问题,但我不太喜欢我所采取的方法。我相信有人可能能够帮助我找到更好的方法来执行此代码。如果您想到更好的主意,请告诉我?或者你的想法与我的比较?我认为这可能是分享知识的好方法..提前致谢

let string = 'ABE';
let ar1 = ["A", "B", "C", "D", "E"];
string = string.split('');

if (string[2] !=='E') {
  for (let i = 0; i < 5; i++) {
        if (string[2] === ar1[i]) {
          i = i+1;
          string[2] = ar1[i]
        }
    }
    string = string.toString().replace(/,/g, '');
    console.log("case 1", string);

} else if (string[1] !=='E' && string[2] ==='E') { 
    string[2] ='A';
    for (let i = 0; i < 5; i++) {
        if (string[1] === ar1[i]) {
          i = i+1;
          let newString = ar1[i];
          console.log(ar1[i]);
          string[1] = newString;
        }
    }
      string = string.toString().replace(/,/g, '');
      console.log("case 2", string);
} else if (string[1] ==='E' && string[2] ==='E') { 
    string[1] ='A';
    string[2] ='A';
    for (let i = 0; i < 5; i++) {
        if (string[0] === ar1[i]) {
          i = i+1;
          string[0] = ar1[i];
        }
    }
    string = string.toString().replace(/,/g, '');
    console.log("case 3", string);
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

if string = "AAA" 则结果为 "AAB"

如果字符串=“AAE”那么结果将为“ABA”

如果字符串=“AEE”那么结果将为“BAA”

Nin*_*olz 7

您可以将该值编码为数值,例如这个位置值

36  6  1
 C  B  A 
 2  1  0   78
Run Code Online (Sandbox Code Playgroud)

并使用所需的字符和长度对递增值进行编码。