2017-02-27 2 views
1

これは私の挑戦です:パラメータに渡された不足している文字を見つけて返す関数を作成します。すべての文字が文字列内にある場合、戻り値は未定義です。たとえば、missingLetter( "abce")は "d"を返し、missingLetter( "bcd")はundefinedを返します。 (あなたが文字列として不足している変数定義されているJavascript:文字列をループして、文字が欠けているかどうかを確認しようとしています。

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") 
+1

変数 'i'を' string'として設定しますが、 'number'と比較しますか? –

+0

@AmreshVenugopalあなたは.indexOf()を参照していますか?ここでは-1を使用して、この文字が配列に存在しないかどうかを判断しています。そうであれば、その不足している文字を新しい変数にプッシュします。 –

+0

は 'char [y] .indexOf(str)'すなわち 'str.indexOf(char [y])'を2つのループに置き換えることを意図していませんか? – Seabizkit

答えて

2

Tonmoyは、これを確認したい場合は既に回答を返します。最初にプッシュ機能を使用する場合は、配列を作成する必要があります。

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") 
+0

クール!この行以外は私にとって意味があります:char [y]!= str [y + i]、特にstr [y + i]は何をしていますか? –

+0

こんにちは、毎回str要素を変更しなければならないので、毎回z要素を探す必要があります。 –

+0

Hmm、str [y + i] =いつでも可能ですか?例えば、str [y + j] = char [y] = "c"のときは何ですか? –

0

が、それは配列でなければなりません:

私は私のコードで正しい軌道に乗っていた場合、あなたが私に教えてくださいすることができ、この1とのトラブルを抱えています)。ループ状態が正しくありません。以下はコードスニペットですが、うまくいきます。

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"); 
+0

ちょっと感謝Tonmoy、これは動作しますが、かなり正確ではありません。このコードでは、すべての不足している文字 "d" + "f-z"が返されますが、入力された文字列の唯一の不足している文字 "d"を返すだけです。 –

+0

次に、いくつかの行を変更する必要があります。 if(str [j] .indexOf(char [i])> -1){ i ++; } else { missing.push(str [j]); if(str [j] .indexOf(char [i])== -1){missing.push(str [j]);戻り値なし。 } – Tonmoy

+0

ありがとう!それは明らかです! –

関連する問題