2016-02-10 51 views
1

我正在解決freecodecamp.com上的一個問題,並且我想查看我的代碼到目前爲止是在做什麼認爲它在做...將文本字符串拆分爲單詞數組,然後將單詞數組轉換爲單詞數組中的字符數組

function titleCase(str) { 
    var wordArr = str.split(' '); // now the sentences is an array of words 
    for (var i = 0; i < wordArr.length; i++) { //looping through the words now... 
    charArr = wordArr[i].split(''); //charArr is a 2D array of characters within words? 
    return charArr[1][1]; 
    } 

} 

titleCase("a little tea pot"); // this should give me 'i', right? 

再一次,這只是代碼的開始。我的目標是將參數titleCase();中每個單詞的首字母大寫。也許我甚至都沒有去解決這個問題。

但是......在第4行是charArr一個多維數組。這是否創建[['a'],['l','i','t','t','l','e'],['t','e','a','p','o','t']]

+0

你'return'聲明將阻止你的循環運行一次以上。如果不是你所描述的,你還需要指出你的代碼實際上在做什麼。也許看看[如何提問](http://stackoverflow.com/help/how-to-ask) – CollinD

回答

1

除了ABR答案(我還不能發表評論):

charArr是一維數組,如果你想要它是一個二維數組,你需要推送wordArr [i] .split('')的結果。而不是分配它。

charArr.push(wordArr[i].split('')); 

而且不要忘了初始化charArr爲空數組

+0

啊...是的!我很確定這就是我一直在尋找的東西,但是我很難在我的腦海中解決這個問題,並以正確的方式將它加入到代碼中。應該再努力一點,並努力解決。非常感謝你和@ABR! – ckperez

1

幾個問題:
1.您的return語句將在一次迭代後停止。
2.如果其中一個單詞少於2個字母(例如您的示例中的第一個單詞,即'a'),您將在charArr [1] [1]處發生異常。

除此之外,它大多是好的。 它可能會幫助你下載一個工具,像螢火蟲和測試代碼活...

+0

你忘了提及'charArr'是一個一維字符數組,所以引用'charArr [1] [1]「有點傻。 – CollinD

+0

謝謝!我絕對應該得到這樣的工具。 – ckperez

0

你可以做到以下幾點:

function titleCase(str) { 
    var newString = ""; 
    var wordArr = str.split(' '); 
    for (var i = 0; i < wordArr.length; i++) { //looping through the words now... 
     var firstLetter = wordArr[i].slice(0,1); // get the first letter 
     //capitalize the first letter and attach the rest of the word 
     newString += firstLetter.toUpperCase() + wordArr[i].substring(1) + " "; 
    } 
return newString; 
} 

你也需要刪除return statementfor loop因爲第一次for循環遍歷return聲明,它將結束該函數,並且您將無法遍歷所有單詞


在這裏你可以瞭解更多關於string.slice()http://www.w3schools.com/jsref/jsref_slice_string.asp

+0

謝謝!這看起來非常好。還沒有熟悉'.slice()'。 – ckperez

+0

在這裏你可以學到更多的'string.slice()':http://www.w3schools.com/jsref/jsref_slice_string.asp – Rana

+0

嘿ckperez,你需要通過接受1的答案來關閉這個問題。您可以點擊答案旁邊的複選標記來執行此操作。 – Rana

相關問題