Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Caesar Cipher JS:为什么继续使用忽略空格会导致未定义?_Javascript - Fatal编程技术网

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]
赋值,因为字符串是不可变的。