2016-09-08 2 views
0

저는 JS를 공부하고 있습니다. 배열의 첫 번째 요소에있는 문자열에 배열의 두 번째 요소에있는 문자열의 모든 문자가 포함되어 있는지 확인하는 프로그램을 작성해야합니다.indexOf 배열의 두 번째 문자를 무시합니다.

나는 다음과 같은 코드를 만들었 :

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"기능은 내 루프의 두 번째 문자를 무시하는 것 - 콘솔에 loggs하지만 배열로 푸시되지 않습니다. 첫 번째 글자와 두 번째 글자가 비슷하기 때문에 일어날 수 있다고 생각했지만 그렇지 않습니다. 어떤 편지가 있더라도, 단지 그것을 무시합니다.

+0

: '(lowerCaseStringTwo.indexOf (lowerCaseStringOne는 [I])> 0)'이 '경우 (lowerCaseStringOne해야합니다. indexOf (lowerCaseStringTwo [i])> 0)' –

+0

이제 'm'문자는 무시됩니다. 나는 그것을 해결하기 위해 여러 가지 방법을 시도 했으므로 더 많은 실수를 할 수 있었다. –

+0

미안하지만, 내 잘못은 다른 실수를 전에 보지 못했다. '> -1'은 0이 첫 글자의 인덱스이므로 –

답변

0

첫 번째 인스턴스가 배열의 위치 0에 있으므로 indexOf()는 예제에서 문자 "a"에 대해 0을 반환합니다. 당신은 사용해야

"> = 0"난 그냥이 실수를 본 적이

관련 문제