Javascript Caesar Cipher JS:为什么继续使用忽略空格会导致未定义?
在我的代码中,我检查字符串中的特殊情况Javascript Caesar Cipher JS:为什么继续使用忽略空格会导致未定义?,javascript,Javascript,在我的代码中,我检查字符串中的特殊情况'Z''Z'和',以便使用条件语句进行适当处理。在第一种情况下,如果出现这些字符,我将它们设置为'A'。如果出现”,我将使用continue,以进入下一次迭代并保留空白。但是,我没有保留空白,而是从字符串中得到undefined var result = document.getElementById('result'); var finalString = ""; // Take each character in a given String and
'Z''Z'
和'
,以便使用条件语句进行适当处理。在第一种情况下,如果出现这些字符,我将它们设置为'A'
。如果出现”
,我将使用continue
,以进入下一次迭代并保留空白。但是,我没有保留空白,而是从字符串中得到undefined
var result = document.getElementById('result');
var finalString = "";
// Take each character in a given String and shift one letter up in the alphabet
function shiftString() {
var userString;
var storeString = Array();
userString = document.getElementById('string').value;
if (typeof userString === 'string') { // JS must interpret user input as a string
for (var i = 0; i < userString.length; i++) { // Iterate through each character in given string
if (userString.charAt(i) == 'z') { // If we reach the end of the alphabet, start over at the beginning
userString.charAt[i] = 'a';
}
else if (userString.charAt(i) == 'Z') {
userString.charAt[i] = 'A';
}
else if (userString.charAt(i) == ' ') { // Keep spaces as they are
continue; // This results in a string such as 'HelloundefinedWorld'
}
else // Shift to the next character over
userString.charAt[i] = (String.fromCharCode(userString.charCodeAt(i) + 1));
}
console.log(typeof userString)
return displayResult(userString);
}
}
// Take the end result of the translated String and post it to the DOM
function displayResult(a) {
for (var i = 0; i < a.length; i++) {
finalString += a.charAt[i];
}
result.innerHTML = finalString;
}
function clearResult() {
result.innerHTML = "";
}
var result=document.getElementById('result');
var finalString=“”;
//将给定字符串中的每个字符在字母表中上移一个字母
函数shiftString(){
var用户字符串;
var storeString=Array();
userString=document.getElementById('string')。值;
if(typeof userString==='string'){//JS必须将用户输入解释为字符串
对于(var i=0;i
简化了代码并更正了错误,包括注释中提到的错误。还用于字符替换的substr()
函数。现在好像有用了。请查看:
var result=document.getElementById('result');
移位字符串();
//将给定字符串中的每个字符在字母表中上移一个字母
函数shiftString(){
var userString=document.getElementById('string')。值;
if(typeof userString==='string'){//JS必须将用户输入解释为字符串
对于(var i=0;i
简化了代码并更正了错误,包括注释中提到的错误。还用于字符替换的
substr()
函数。现在好像有用了。请查看:
var result=document.getElementById('result');
移位字符串();
//将给定字符串中的每个字符在字母表中上移一个字母
函数shiftString(){
var userString=document.getElementById('string')。值;
if(typeof userString==='string'){//JS必须将用户输入解释为字符串
对于(var i=0;i
最好使用正则表达式和replace
方法。charAt[i]
:你做错了。必须在charAt()
和[]
之间进行选择。您的脚本存在多个问题。一个是您在for
循环中返回。另一个是userString.charAt[i]
不做任何事情,也不会给userString.charAt(i)
或userString[i]赋值
因为字符串是不可变的。最好使用正则表达式和replace
方法。charAt[i]
:你做错了。必须在charAt()
和[]
之间进行选择。您的脚本存在多个问题。一个是在for
循环中返回。另一个是userString.charAt[i]
不做任何事情,也不会给userString.charAt(i)
或userString[i]
赋值,因为字符串是不可变的。