Javascript 首字母大寫

| | | | | | | | | | | | | | | | | | | | | | | | | | | | |

有許多初學者代碼挑戰將幫助您開始像工程師一樣思考。一個這樣的挑戰是您將給定字符串中每個單詞的第一個字母大寫。在本文中,我們將看看 JavaScript 中的提示和幾種可能的解決方案。

給定一個函數,capitalize,其中包括 str 作為參數,返回每個單詞大寫的 str。嘗試考慮解決方案中的峰值情況(而不是輸入、錯誤的輸入類型等)。

方法

  1. 再次查看提示。寫下或突出顯示您可以在措辭中找到的任何關鍵字。
  2. 結合單詞問題的含義。做代碼挑戰最難的部分是試圖弄清楚問題要求你做什麼。了解問題將幫助您在解決問題方面大有幫助。
  3. 可能的偽代碼解決方案。它不一定是實際代碼(它不需要在您的 IDE 或控制台瀏覽器中可執行 - 簡單的英文就可以):

一步一步仔細解決問題。它將幫助您考慮提示案例 - 可能傳遞錯誤條目或空字符串的案例 - 以及如何將問題分解為邏輯步驟。這基本上是你的實驗階段——沒有錯誤的答案,只是思考如何解決問題。這些想法可能會產生誤導或誤導 - 這是您了解贏得解決問題方法的方式

我發現如果我可以通過大聲解釋來分解它,那麼邏輯就更容易了。您的里程可能會因您的方法而異,但我想至少建議它對您有用!像這樣的小問題的暱稱似乎有點矯枉過正,但如果你現在練習這個概念,你在處理更困難的問題時會更容易。

解決方案

解決方案#1:使用String.replace()和charAt()方法進行split()和循環

leave = capitalize (str) => {= stop leave str.split (``); for (i = 0; i

在第一個解決方案中,我們將字符串按空格分開。這給了我們一個 arr 每個唯一的詞作為它的索引。數組上的循環使我們可以訪問每個字符串的個人索引。我們將字符串(在本例中為 arr [i])重新分配給索引 i,因為將索引 0 處的字符串 (arr [i] .charAt (0) 替換為其大寫值。字符串中的 arr 為每個單詞之間的空格

解決方案#2:用map方法和切片分割

在這個解決方案中,我們以非常相似的方式開始,但是我們使用一種稱為循環卡的ES6數組方法通過網絡和返回新值 ,Äã,Äã 將每個單詞的第一個字符大寫。它通過明確設置我們將如何處理第一個字母的 toUpperCase ()、字符串其餘部分的 slice () 和字符串來做到這一點連接以獲得單詞的新版本。然後我們合併數組並返回它

解決方案n ¬∞ 3:正則表達式

允許槓桿 = (str) => {let regex = / (^ | s) S / g return str.replace (regex, letter => letter.toUpperCase ()); } 離開 root = document.getElementById(`root`); root.innerHTML = JSON.stringify(大寫(快速棕色狐狸跳上懶狗,Äã,Äã`));

在這個解決方案中,我們使用正則表達式來查找字符串開頭的所有非白色字符(S)(^ ) 在空格字符後。最後的指示符 g 表示全局,並允許我們找到該模型的所有實例。然後我們使用 replace 方法用一個函數替換該正則表達式模式,該函數接受該字母並以大寫形式返回它。

最後的想法

這些解決方案絕不是唯一的解決方案這個問題.. 最有可能的是,當您開始做更多這些事情時,您會找到與文章或博客中提出的解決方案可能或可能不會不同的解決方案。這是一件好事。這意味著你開始像工程師一樣思考——這就是重點。

繼續。在這些解決方案中,沒有解決峰值情況。如果你的主題是空的或者是數字怎麼辦?嘗試通過處理這些邊界情況來添加上述代碼

提示 :。使用句點/爆炸感嘆號有條件地查找 str 是否存在。查看 MDN 文檔,了解當您不一定知道它是什麼時,是否有辦法找出 的類型。

一件事 :如果您還沒有嘗試反向javascript挑戰字符串

要考慮的其他資源:

在 Ruby 中使用正則表達式 - 這是專用於 Ruby 的,但正則表達式通常與語言無關 - 快速 ` 在解決方案中查找有關 RegExp 語法的更多信息# 1. 3.

JavaScript 替換文本:分步指南 - 專門用於替換方法的教程,用於解決方案 n。 1.