2014-12-12 7 views
0

입력 상자에 입력 한 텍스트의 Flesch 판독 가능성 색인을 반환해야하는 프로젝트를 진행하고 있습니다.자바 스크립트로 단락의 음절 계산

206.835-85.6(number of syllables/number of words)-1.015(number of words/number of sentences) 

나는 단어를 계산하는 방법을 파악하고 확신 한 나는이 문장을 계산하는 방법을 알고,하지만 난 음절을 계산 대해 이동하는 방법을 아무 생각이 다음과 같이 공식은.

Each group of adjacent vowels (a, e, i, o, u, y) counts as one syllable. 
Each word has at least one syllable even if the above rule gives it a count of 0. 

사람이 이것에 대해 이동하는 방법에 대한 올바른 방향으로 날 가리시겠습니까 : 여기

이 정보는 내가 음절로 계산하는 것에 주어졌다이야?

업데이트 일부 코드를 작성했지만 제대로 작동하지 않는 데 문제가 있습니다. 나는 내가 가지고있는 이슈와 함께 아래의 해답에 대한 코멘트로 작업하고있는 jsfiddle에 대한 링크를 게시했다. 만약 누군가가 그것을보고 기꺼이 당신이 내가 뭘 잘못하고 있는지 알아내는 것을 도울 수 있다면 (이 일을하는 가장 효율적인 방법 일 가능성이 높다), 많이 감사 할 것입니다.

답변

2

의사 :

for each letter in word: 
    if letter is vowel, and previous letter is not vowel or this is the first letter, increment numSyllables 

if numSyllables is 0, set numSyllables to 1 

당신은 이전의 편지 모음이었다 또는 여부를 결정하는 플래그로 부울을 사용할 수 있습니다.

var word = "test", 
    i; 
for(i = 0; i < word.length; i++) { 
    console.log(word[i]); 
} 
+0

감사 : 단어의 각 문자를 통해 반복하려면

! 나는 저를 던지는 주요한 것들 중 하나가 그것이 의미가있는 경우 한 번에 각 글자를 읽도록하는 방법이라고 생각합니다. 마찬가지로, 당신의 의사 코드가 어떻게 작동하는지 이해합니다. 그러나 "각 글자에 대해"와 같이, 각 글자 부분을 어떻게 수행해야할지 확신하지 못합니다. 어쩌면 그것은 최소한 분명히 하일만한 것일지도 모릅니다. –

+0

JavaScript에서는 배열처럼 문자열에 색인을 생성 할 수 있습니다. 내 답변에 예제를 추가하겠습니다. – forgivenson

+0

오, 고마워요! –

관련 문제