我正在尝试使用字母表创建一个唯一的密钥;我已经设法解决了这个问题,但我不太喜欢我所采取的方法。我相信有人可能能够帮助我找到更好的方法来执行此代码。如果您想到更好的主意,请告诉我?或者你的想法与我的比较?我认为这可能是分享知识的好方法..提前致谢
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”
您可以将该值编码为数值,例如这个位置值
36 6 1
C B A
2 1 0 78
Run Code Online (Sandbox Code Playgroud)
并使用所需的字符和长度对递增值进行编码。
36 6 1
C B A
2 1 0 78
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |