2014-02-18 6 views
0

우리는 여러 단어의 문자열을 개별 단어의 배열로 분할하려고합니다. 배열 내의 각 문자열을 대문자로 나타내려고합니다.배열 내의 첫 글자를 대문자로 변환

var titleCase = function(txt) { 
    var words = txt.split(" "); 
    words.forEach(function(words) { 
    if (words === "the" || words === "and") { 
    return words; 
    } else { 
    return words.charAt(0).toUpperCase() + words.slice(1); 
    }; 
}; 
+2

정교한. 특히 올바르게 작동하지 않는 것은 무엇입니까? – Bucket

+0

답변 옆에있는 체크 표시를 클릭하여 답변으로 표시하십시오. –

답변

3

몇 가지 구문 오류, 여기에 Array.forEach 방법의 잘못된 사용이 있습니다. 다음보십시오 :

var titleCase = function(txt) { 
    var words = txt.split(" "); 
    words.forEach(function(word, idx, array) { 
    if (word === "the" || word === "and") { 
     array[idx] = word; 
    } else { 
     array[idx] = word.charAt(0).toUpperCase() + word.slice(1); 
    } 
    }); 
    return words.join(" "); 
}; 

console.log(titleCase("This is the test")); 

JSFiddle example

+0

감사합니다. 그게 효과가 있었어. 그러나 idx는 정확히 무엇을합니까? –

+0

도와 드리겠습니다. 'idx' 변수는 배열에있는 현재 아이템의 인덱스입니다. 고마워요. 감사합니다. –

관련 문제