2012-08-04 4 views
0

while 루프를 사용하여 큰 조각의 텍스트를 조각화하여 각 조각의 길이가 995 자 미만이고 마침표로 끝나도록하려고합니다. 마지막 덩어리가 결코 배열 안으로 들어 가지 않는다는 것을 제외하고는 거의 작동하도록했습니다. 왜 그런가요?while loop slice

function divideByPunctuation() { 
    var chunkArray = []; 
    var textHunk = prompt(); 
    var textLength = textHunk.length; 
    var currentLoc = 0; 
    var i = 995; 
    while (currentLoc <= textLength) { 
     if (textHunk[i] === ".") { 
      if (i > textLength) { 
       chunkArray.push(textHunk.slice(currentLoc, textLength)); 
       break; 
      } else { 
       chunkArray.push(textHunk.slice(currentLoc, i)); 
       currentLoc += i; 
       i = currentLoc + 995; 
      } 

     } else { 
      i-- 
     } 
    } 
    console.log(chunkArray[0]); 
    console.log(chunkArray[1]); 
    console.log(chunkArray[2]); 
    console.log(chunkArray[3]); 
}; 
divideByPunctuation();​ 
+0

while 루프 조건은 'currentLoc Bergi

+0

마침표가없는 995 자 이상의 문자열이있는 경우 어떻게해야합니까? –

답변

0

자바 스크립트에는 이런 종류의 기능이 내장되어 있습니다.

a = "Hi there. Here's a test sentence. Here's another one"; 
a.split(". "); 
["Hi there", "Here's a test sentence", "Here's another one"] 
+0

가능한 한 995 자 정도의 청크로 분할해야하므로 .split()이 도움이되지 않습니다. –

+0

어떤 제약이 우선합니까? 995 자보다 긴 문장이 있으면 어떨까요? 문장이 더 길 경우에도 –

+0

은 995 자 미만이어야합니다. 1000 문자 문장이 많지는 않습니다. –