我正在研究一种简单的密码算法,并且试图弄清楚如何在字符数超过122时在字符122(z)处停止if语句并从char 97(a)开始。到目前为止,我所看到的都是MDN和W3学校,但没有提出任何建议。
enter code here
function simpleCipher(str) {
var newString = [];
for (var i = 0; i < str.length; i ++) {
if (str.charCodeAt(i) > 97 || str.charCodeAt(i) < 122) {
var convertString = String.fromCharCode(str.charCodeAt(i) + 4);
var powerString = newString.push(convertString);
} else {
return;
}
}
return newString.join('');
}
答案 0 :(得分:1)
var aPos = 97;
var zPos = 122;
var charsCount = zPos - aPos + 1;
...
if (aPos <= str.charCodeAt(i) && str.charCodeAt(i) <= zPos) { // probably you want && here
var charNumber = str.charCodeAt(i) - aPos;
var charNumberEncoded = (charNumber + 4) % charsCount;
var convertString = String.fromCharCode(aPos + charNumberEncoded);
var powerString = newString.push(convertString);
}
给常量名称而不在代码中使用数字被认为是一种好习惯。这样的数字通常称为magic numbers,使阅读代码更加困难。