我正在用javascript构建一个凯撒密码。它使用一个随机设置的变量,称为currentkey
密码密钥。它可以是从 -25 到 +25 的数字,跳过 0。
我无法弄清楚为什么函数在字符串的开头返回 undefined,或者为什么只要字符串继续翻译同一个字母,甚至为什么那个字母根本没有被翻译。
var currentkey = 5 //for example
function convertKey(str) {
var o_text = str;
var o_letters = o_text.split("");
var alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','y','w','z']
var c_text, _x = "";
for (x in o_letters) {
if (currentkey > 0) {
_x = alphabet[alphabet.indexOf(x) + currentkey]
} else {
_x = alphabet[alphabet.indexOf(x) + (26 - currentkey)]
}
c_text = c_text + _x;
}
return c_text;
}
例如,运行convertKey("example")
返回undefinedeeeeeee
(未定义+“示例”中第一个字母的 7 倍)。