2016-09-08 8 views
0

私はJSを勉強しています。配列の最初の要素の文字列に配列の2番目の要素の文字列のすべてが含まれているかどうかをチェックするプログラムを書く必要があります。indexOfは配列の2番目の文字を無視します

私はこのようなコードを作った:

function mutation(arr) {mutation: { 
    var lowerCaseStringOne = arr[0].toLowerCase(); 
    var lowerCaseStringTwo = arr[1].toLowerCase(); 

    if (lowerCaseStringOne === lowerCaseStringTwo) { 
     console.log(true); 
     break mutation; 
    } 

    var newArray = []; 

    for (var i = 0; i < lowerCaseStringTwo.length; i++){ 
     console.log(lowerCaseStringTwo[i]); 
     if (lowerCaseStringTwo.indexOf(lowerCaseStringOne[i]) > 0) { 
      newArray.push(lowerCaseStringTwo[i]); 
      console.log('---'); 
     } 
    } 

    var result = newArray.join(""); 

    if (result === lowerCaseStringTwo) { 
     console.log(true); 
    } else { 
     console.log(false); 
    } 
} 
} 

mutation(["Mary", "Aarmy"]); 

、私はそれは非常に複雑だと思うが、私は問題を解決することはできません - 「のindexOf」機能は、私のループの2番目の文字を無視しているようです - コンソールにそれを記録しますが、配列にプッシュしません。私はそれが起こる可能性があると思ったのは、第一文字と第二文字が似ているからです。どんな手紙であろうと、それを無視するだけです。

+0

: '(lowerCaseStringTwo.indexOf(lowerCaseStringOneは、[I])> 0)'これは '場合(lowerCaseStringOneする必要があります。 indexOf(lowerCaseStringTwo [i])> 0) ' –

+0

これで 'm'文字が無視されます。私はそれを解決するために多くの方法を試したので、私はもっと間違いをする可能性があります... –

+0

申し訳ありませんが、私のせいで他の間違いは見られていません。あなたは '> -1'を0にする必要があります。最初の文字のインデックスは –

答えて

0

最初のインスタンスが配列の位置0にあるので、indexOf()は例の文字「a」に対して0を返します。あなたが使用する必要があり

"> = 0" 私はこの間違いを見てきました

関連する問題