2017-03-12 7 views
-2

私は、次のコードを持っている:それは([「こんにちは」、「ちょっと」])のようなもので動作しますが、それは上記の方法では動作しませんこの.indexOfメソッドがこの配列で機能しないのはなぜですか?

var newArr = []; 

function mutation(arr) { 

    //Makes both values lowercase 

    for (var i = 0; i < arr.length; i++) { 

    newArr.push(arr[i].toLowerCase()); 

    } 

    //splits the letters of the second value into separate values. 

    var letters = []; 
    letters.push(newArr[1]); 
    letters = letters.toString(); 
    letters = letters.split(''); 

    //checks to see if there is a letter that isn't in the first value. 

    for (var j = 0; j < letters.length; j++) { 

    if (newArr[1].indexOf(letters[j]) == -1) { 

     return false; 

    } 

    } 

    return true; 

} 

mutation(["voodoo", "no"]); 

を。 .indexOfメソッドがこの配列で機能しないのはなぜですか?

私は本当にコードは何をすべきかを知らないが、ステップバイステップでそれを確認することができます
+0

なぜnewArrはグローバル変数である必要はないのですか? –

+0

なぜ配列を文字列に変換していますか?なぜ最初に配列を使用するのですか?何が間違っているのか、コードは正確に何を伝えているのか... – Li357

答えて

0

var newArr = []; 

function mutation(arr) { 

    // Makes both values lowercase 
    // arr is now ["voodoo", "no"] 

    for (var i = 0; i < arr.length; i++) { 

    newArr.push(arr[i].toLowerCase()); 

    } 
    // newArr has the same content: ["voodoo", "no"] 
    //splits the letters of the second value into separate values. 

    var letters = []; 
    letters.push(newArr[1]); // letters is now ["no"] 
    letters = letters.toString(); // letters is now "no" 
    letters = letters.split(''); // letters is now ["n", "o"] 

    //checks to see if there is a letter that isn't in the first value. 

    for (var j = 0; j < letters.length; j++) { // foreach ["n", "o"] 

    if (newArr[1].indexOf(letters[j]) == -1) { // "no".indexOf("n") and "no".indexOf("o") is always > -1 


     return false; // so false is never returned 

    } 

    } 

    return true; // true is always returned 

} 

mutation(["voodoo", "no"]); 

私は場合は、

if (newArr[0].indexOf(letters[j]) == -1) 

if (newArr[1].indexOf(letters[j]) == -1) 

を変更すべきだと思います2番目の単語の1文字が最初の単語に含まれていないかどうかをテストします。

+0

私はそれをしましたが、今は(["hello"]、["hey"])は動作しません。 –

+0

「うまくいかない」とはどういう意味ですか?インデックスを1から0に変更し、["hello"、 "hey"]を引数として関数を呼び出すと、戻り値としてfalseが返されます。 – Teemoh

関連する問題