Closed. This question needs debugging details。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
我如何解决警报的
编辑:感谢Barmar's comment让我更多地思考问题。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
我如何解决警报的
Encrypted
值为NaN
的问题?function Encrypt() {
var Plaintext = document.getElementById("txt").value;
var Key = Math.floor(Math.random() * 26) + 1;
var Chaesarshifted = caesarShift(Plaintext,Key);//i just didn't paste Chaesarshift code
var Encrypted;
alert(Chaesarshifted);
for (let index = 0; index < Chaesarshifted.length; index++) {
Chaesarshifted.toLowerCase();
//till here everything works fine
Encrypted += Chaesarshifted.charCodeAt(index) - 96;
}
alert(Encrypted);// Alert says NaN
}
最佳答案
未设置Encrypted
的初始值。因此,当您尝试对其执行+=
时,它不知道如何处理该操作。
您应该将Encrypted
填入空字符串""
作为起始值。
然后,在for循环内,Chaesarshifted.toLowerCase();
不会设置该值,但必须将其存储。
另外,您的逻辑也无法添加Encrypted
文本。您需要将字符改回Unicode字符。甚至可能建立一个数组以稍后连接。
最后,您应该以小写字母开头变量名,以遵守约定。
放在一起:
function Encrypt() {
var plaintext = document.getElementById("txt").value;
var key = Math.floor(Math.random() * 26) + 1;
var chaesarshifted = caesarShift(plaintext,Key); //missing chaesarshift code
var encrypted = "";
alert(chaesarshifted);
chaesarshifted = chaesarshifted.toLowerCase();
for (let index = 0; index < chaesarshifted.length; index++) {
//missing code
encrypted += String.fromCharCode(chaesarshifted.charCodeAt(index) - 96);
}
alert(encrypted);// Alert will show garbled text (offset values from chaesarshift str)
}
编辑:感谢Barmar's comment让我更多地思考问题。
08-16 23:54