gpt4 book ai didi

javascript - 从 3 Alphabet 创建一个唯一的 key

转载 作者:行者123 更新时间:2023-12-05 00:31:04 25 4
gpt4 key购买 nike

我正在尝试使用字母创建唯一键;
我已经设法解决了,但我不太喜欢我采用的方法。而且我相信那里的某个人可能能够帮助我获得更好的方法来执行此代码。如果您有更好的主意,请告诉我?或者你有什么想法可以和我的比较?
我认为这可能是分享知识的好方法..提前谢谢

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);
}
结果如下:

if string = "AAA" Then the result "AAB"

if string = "AAE" Then result will be "ABA"

if string = "AEE" Then result will be "BAA"

最佳答案

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

36  6  1
C B A
2 1 0 78
并使用所需的字符和长度对递增的值进行编码。
function decode(value, characters) {
const
values = Object.fromEntries(Array.from(characters, (v, i) => [v, i]));

return value
.split('')
.reduce((s, v) => s * characters.length + values[v], 0);
}

function encode(value, characters, length = 0) {
let result = '';

do {
result = characters[value % characters.length] + result;
value = Math.floor(value / characters.length);
} while (value);

return result.padStart(length, characters[0]);
}

console.log(decode('AAA', 'ABCDEF')); // 0
console.log(encode(0, 'ABCDEF', 3)); // AAA
console.log(encode(1, 'ABCDEF', 3)); // AAB

console.log(decode('CBA', 'ABCDEF')); // 78
console.log(encode(78, 'ABCDEF', 3)); // CBA
console.log(encode(79, 'ABCDEF', 3)); // CBB

关于javascript - 从 3 Alphabet 创建一个唯一的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72071319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com