Javascript 函数查找字符串中不在JS中工作的继续元素

Javascript 函数查找字符串中不在JS中工作的继续元素,javascript,string,function,Javascript,String,Function,问题是取一个字符串,并为字符串中的每个字母返回字母表中的下一个字母。例如,“踢屁股”应返回“ljdl btt” 我已经写了这段代码,但它不起作用。也许有人能发现我的错误 function-LetterChanges(str){ var=”; var stringlength=str.length-1; var strAlpha=“abcdefghijklmnopqrstuvxyz”; 对于(var i=0;i您可以使用正则表达式和replace轻松地执行此操作: var str = 'kick

问题是取一个字符串,并为字符串中的每个字母返回字母表中的下一个字母。例如,“踢屁股”应返回“ljdl btt” 我已经写了这段代码,但它不起作用。也许有人能发现我的错误

function-LetterChanges(str){
var=”;
var stringlength=str.length-1;
var strAlpha=“abcdefghijklmnopqrstuvxyz”;

对于(var i=0;i您可以使用正则表达式和
replace
轻松地执行此操作:

var str = 'kick azZ'.replace(/[a-z]/gi, function(c){
  if (c=='z') return 'a';
  if (c=='Z') return 'A';
  return String.fromCharCode(c.charCodeAt(0) + 1);
});

console.log(str); //= "ljdl baA"

使用正则表达式和
替换
,您可以轻松做到这一点:

var str = 'kick azZ'.replace(/[a-z]/gi, function(c){
  if (c=='z') return 'a';
  if (c=='Z') return 'A';
  return String.fromCharCode(c.charCodeAt(0) + 1);
});

console.log(str); //= "ljdl baA"

您当前的函数存在很多问题。以下是一些更好的开始:

var alphabet = "abcdefghijklmnopqrstuvwyz";

function translate(str) {
    var result = "";

    for (var i = 0; i < str.length; i++) {
        var char = str.charAt(i);
        var index = alphabet.indexOf(char);

        // You'll have to find the next character in alphabet
        // Use the modulo operator (%) to handle "z" -> "a"

        result += nextChar;
    }

    return result;
}
var alphabet=“abcdefghijklmnopqrstuvyz”;
函数转换(str){
var结果=”;
对于(变量i=0;i“a”
结果+=nextChar;
}
返回结果;
}

您当前的函数存在很多问题。这里有一些更好的开始:

var alphabet = "abcdefghijklmnopqrstuvwyz";

function translate(str) {
    var result = "";

    for (var i = 0; i < str.length; i++) {
        var char = str.charAt(i);
        var index = alphabet.indexOf(char);

        // You'll have to find the next character in alphabet
        // Use the modulo operator (%) to handle "z" -> "a"

        result += nextChar;
    }

    return result;
}
var alphabet=“abcdefghijklmnopqrstuvyz”;
函数转换(str){
var结果=”;
对于(变量i=0;i“a”
结果+=nextChar;
}
返回结果;
}

很好的练习!请查看:

function LetterChanges(str) { 

  var result = [],
      strAlpha = "abcdefghijklmnopqrstuvwxyz";

    for(var i=str.length;i--;){
        var char = str[i],
            strIndex = strAlpha.indexOf(char),
            newIndex = (strIndex <  strAlpha.length-1) ? strIndex +1 : 0;

        result.unshift(strAlpha[newIndex]);
    }

    return result.join('');
}

alert(LetterChanges("hello there"));
function-LetterChanges(str){
var结果=[],
strAlpha=“abcdefghijklmnopqrstuvxyz”;
对于(变量i=str.length;i--;){
var char=str[i],
strIndex=strAlpha.indexOf(字符),
新指数=(strIndex
小提琴:


也许你只需要添加一些代码来正确处理空格。

这是一个很好的练习!请查看:

function LetterChanges(str) { 

  var result = [],
      strAlpha = "abcdefghijklmnopqrstuvwxyz";

    for(var i=str.length;i--;){
        var char = str[i],
            strIndex = strAlpha.indexOf(char),
            newIndex = (strIndex <  strAlpha.length-1) ? strIndex +1 : 0;

        result.unshift(strAlpha[newIndex]);
    }

    return result.join('');
}

alert(LetterChanges("hello there"));
function LetterChanges(str) { 

  var LetterChanges = "";     
  var stringlength = str.length-1;
  var strAlpha = "abcdefghijklmnopqrstuvwxyz";
  var n = 0;
  for (var i=0; i<stringlength; i++) {
     if(str[i] != ' ') {
     n=strAlpha.indexOf(str[i]);
     LetterChanges += strAlpha[n+1];
     }else{
     LetterChanges += ' ';
     }   
  }    
   return LetterChanges; 

}

document.write(LetterChanges("hello there"));
function-LetterChanges(str){
var结果=[],
strAlpha=“abcdefghijklmnopqrstuvxyz”;
对于(变量i=str.length;i--;){
var char=str[i],
strIndex=strAlpha.indexOf(字符),
新指数=(strIndex
小提琴:

也许你只需要添加一些代码来正确处理空格。

函数LetterChanges(str){
function LetterChanges(str) { 

  var LetterChanges = "";     
  var stringlength = str.length-1;
  var strAlpha = "abcdefghijklmnopqrstuvwxyz";
  var n = 0;
  for (var i=0; i<stringlength; i++) {
     if(str[i] != ' ') {
     n=strAlpha.indexOf(str[i]);
     LetterChanges += strAlpha[n+1];
     }else{
     LetterChanges += ' ';
     }   
  }    
   return LetterChanges; 

}

document.write(LetterChanges("hello there"));
var=”; var stringlength=str.length-1; var strAlpha=“abcdefghijklmnopqrstuvxyz”; var n=0; 对于(var i=0;i
函数LetterChanges(str){
var=”;
var stringlength=str.length-1;
var strAlpha=“abcdefghijklmnopqrstuvxyz”;
var n=0;

对于(var i=0;i有很多方法可以实现这样的函数,但是考虑到我们在这里所得到的,解决“也许有人可以找到我的错误”这一部分可能更具指导意义。在代码中,错误多于权利,所以甚至不清楚您的意图

var stringlength = str.length-1;
这很奇怪,我们不知道您在这里想要实现什么。
stringlength
从未在函数中使用:

for (var i=0; i<strAlpha.length; i++) {
这也很奇怪。不清楚您要测试什么。您当前正在检查字母表(字符串,总是相同的值)是否小于(即,按字母顺序排在前面)字母表位置字符的
长度
i
。如果
i
在字母表的范围内,
strAlpha[i]
将始终只返回一个字符。
strAlpha[i].length
只能是1或引发异常。现在,由于您正在将字符串与数值
1
进行比较,字符串比较将是一个小于数值的条件。您的条件几乎总是说
if('abc…'<1)
,这永远不会是真的

LetterChanges += strAlpha[i] +1;
如果您的代码确实进入了该条件,它将遇到此问题。将
strAlpha[i]+1
添加到
LetterChanges
。同样,
strAlpha[i]
是位于
i
位置的字母。对于
i=0
strAlpha[i]='a'
,和
'a'+1='a1'
。您正在遍历整个字母表;如果您的情况评估为true,您将得到
字母更改='a1b1c1…'
。这里我假设您的意思是
斯特拉尔法[I+1]
相反,这将在位置
i+1
处生成字母表中的字母。您仍在迭代整个字母表,最终将所有字符向上移动一个位置,
字母更改='bce…'

return str; 
最后,返回字符串。这里有两个问题。主要的一个问题是,您返回输入参数
str
,但从未接触过它。您将始终返回传递给函数的任何内容。您的意思是
return LetterChanges;
?第二个问题是,您在
for
循环中返回它,这意味着它将在第一次迭代时退出函数,
i=0
,返回传入的内容

如果在此状态下更改为
return LetterChanges;
,它将返回一个空字符串。如果更改条件使其计算结果为true并更改为
return LetterChanges;
它将返回
'b'
。如果同时进行了这些更改并将return语句移到循环外,它将返回
'bcedefghijklmnopqrstuvwxyz'
不管您传递了什么

这里有太多问题,我们无法告诉您应该修复哪些问题才能使代码正常工作。您需要后退一步,看看是什么问题