2015-01-27 1 views
0

나는 문장을 쓰고 컴퓨터가 공백을 사용하지 않고 별도의 "확인 창"에서 각 단어를 확인하게하려고한다. 이 코드가이 작업을 수행하는 올바른 코드인지 확인하려면 코드를 실행해야하지만 4 행의 제목에 오류가 표시됩니다. 첫째, 나는 오류의 의미를 이해하지 못한다. 그리고 4 행에서 if 문이 함수가 아니며 실행할 수 없다고 말하면 어떻게됩니까?자바 스크립트 오류 : 알려지지 않은 TypeError : undefined가 4 행의 함수가 아닙니다. 내가 뭘 잘못했는지 모르겠다.

<script> 
function sentenceFinder (sentence){ 
    for (counter = 0; counter < sentence.length; counter++){ 
     if (sentence.substring(counter, counter + 1) !== " "){ 
      words.push(sentence.substring(counter, counter + 1)); 
     } 
     else { 
      comfirm(words[0]); 
     } 
    }; 
} 

var x = prompt("Please type in the sentence that will be seperated.") 
sentenceFinder(x) 

var words = [] 
</script> 
+1

'counter.subscript'란 무엇입니까? 나는 당신이'counter.substr'을 의미한다고 생각합니다. – Barmar

+0

당신의 코드에서 잘못된 inbuilt 함수를 사용하고 있다고 생각합니다. 잘못된 철자법이나 잘못된 inbuilt 함수로 inbuilt 함수를 사용하는 것 같습니다. –

답변

2

오류의 원인이되는 두 가지 문제가 있습니다.

  1. 귀하는 substring을 사용하려는 것으로 생각하는 subscript을 사용하고 있습니다.
  2. 배열로 설정하기 전에 words을 사용하고 있습니다.

나는 이것이 당신이 의도 한 것이라고 생각합니다.

function sentenceFinder (sentence){ 
    for (counter = 0; counter < sentence.length; counter++){ 
     if (sentence.substring(counter, counter + 1) !== " "){ 
      words.push(sentence.substring(counter, counter + 1)); 
     } 
     else { 
      comfirm(words[0]); 
     } 
    }; 
} 

var words = []; 
var x = prompt("Please type in the sentence that will be seperated."); 
sentenceFinder(x); 
+0

하위 문자열을 아래 첨자로 변경했습니다 ... 단어 배열에 대해 감사드립니다. – user3814413

+0

... 그리고 아마도 함수 밖에서'words'를 초기화해서는 안됩니다. 변수를'sentenceFinder'에 로컬로 만듭니다. – Bergi

관련 문제