这是我的挑战:创建一个函数,它将找到参数中传递的缺失字母并将其返回。如果字符串中存在所有字母,则返回将是未定义的。例如,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")
答案 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");