Javascript:我试图遍历一串字符并确定是否缺少某个字符

时间:2017-02-27 08:22:58

标签: javascript string

这是我的挑战:创建一个函数,它将找到参数中传递的缺失字母并将其返回。如果字符串中存在所有字母,则返回将是未定义的。例如,missingLetter(" abce")应返回" d&#34 ;, missingLetter(" bcd")应返回undefined。

我遇到这个问题,请你告诉我我的代码是否正确:

var missingLetter = function(char){
  var missing = "";
  var str = "abcdefghijklmnopqrstuvwxyz";
  for (var i = char[0]; i < char.length; i++){
     for(var y = char[0].indexOf(str); y < char.length; y++ ){
       if(char[y].indexOf(str) == -1 ){
         missing.push(char[y]);
       }
     }
  }
   console.log(missing);
  return missing;
}
missingLetter("abce")

2 个答案:

答案 0 :(得分:2)

Tonmoy已经给出了答案,如果你想要你可以检查一下。首先,如果要使用push函数,则必须创建一个数组。

var missingLetter = function(char){
    var missing = []
    var y = 0
    var str = "abcdefghijklmnopqrstuvwxyz";
    for (var i = 0; i < str.length; i++){
        while(y  < char.length ){
            if( char[y] != str[y+i] ){
                missing.push(str[y+i])
                ++i
            }
            else
                ++y
        }
}
console.log(missing)
return missing
}
missingLetter("cdz")

答案 1 :(得分:0)

您已将变量缺失为字符串,但它应该是一个数组()。循环条件不正确。以下是代码片段,工作正常。

var missingLetter = function(char){
    var missing = new Array();
    var str = "abcdefghijklmnopqrstuvwxyz";
    var i = 0;
    while(i<char.length) {
        for(var j=0;j<26;j++) {
            if(str[j].indexOf(char[i])>-1){
                i++;
            } else {
                missing.push(str[j]);
            }
        }
    }
    console.log(missing);
    return missing;
}
missingLetter("abce");