JavaScript pisz wielką literę

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

Istnieje wiele wyzwań dla początkujących, które pomogą Ci zacząć myśleć bardziej jak inżynier. Jednym z takich wyzwań jest pisanie wielką literą każdego słowa w danym ciągu. W tym artykule przyjrzymy się znakowi zachęty i kilku możliwym rozwiązaniom w JavaScript.

Podano funkcję wielkośćmi, która zawiera str jako parametr, zwróć ten str z każdym słowem pisanym wielką literą. Spróbuj myśleć o szczytowych przypadkach w swoim rozwiązaniu (nie jako dane wejściowe, niewłaściwy typ danych wejściowych itp.).

Podejście

  1. Spójrz ponownie na monit. Zapisz lub zaznacz wszystkie słowa kluczowe, które możesz znaleźć w sformułowaniu.
  2. Połącz znaczenie zadania tekstowego. Częścią najtrudniejszej części wykonywania wyzwań związanych z kodem jest próba ustalenia, o co prosi cię problem. Zrozumienie problemu pomoże ci przejść długą drogę w jego rozwiązaniu.
  3. możliwe rozwiązanie pseudokodu. Nie musi to być rzeczywisty kod (nie musi być wykonywalny w twoim IDE lub przeglądarce konsoli - prosty angielski jest w porządku):

Starannie rozwiąż problem krok po kroku. Pomoże Ci pomyśleć o przypadkach napiwków — przypadkach, w których można podać niepoprawny wpis lub pusty ciąg — oraz o tym, jak podzielić problem na logiczne kroki. To jest w zasadzie twoja faza eksperymentowania - nie ma błędnych odpowiedzi, tylko myśli o tym, jak podejść do problemu. Te myśli mogą być mylące lub mylące — w ten sposób dowiesz się o wygranych podejściach do rozwiązania problemu

Odkryłem, że logika jest łatwiejsza, jeśli potrafię to wyjaśnić, wyjaśniając na głos. Twój przebieg może się różnić w zależności od podejścia, ale chciałem przynajmniej zasugerować, jeśli to zadziała! Pseudonim takiego małego problemu wydaje się trochę przesadą, ale jeśli teraz przećwiczysz tę koncepcję, łatwiej będzie ci pracować nad znacznie trudniejszymi problemami.

Rozwiązania

Rozwiązanie nr 1: split() i pętla za pomocą metod String.replace() i charAt()

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

W tym pierwszym rozwiązaniu dzielimy ciąg na jego spacje. To daje nam arr każde unikalne słowo jako jego indeks. Pętla na tablicy daje nam możliwość dostępu do osobistych indeksów każdego ciągu. Zmieniliśmy przypisanie ciągu (w tym przypadku jest to arr [i]) do indeksu i w wyniku zastąpienia ciągu o indeksie 0 (arr [i] .charAt (0) jego wartością pisaną wielkimi literami. Arr w ciągu z spacje między każdym ze słów

Rozwiązanie nr 2: podziel za pomocą metody mapy i wycinka

W tym rozwiązaniu zaczynamy w bardzo podobny sposób, ale używamy metody tablicowej ES6 zwanej kartą pętli przez sieć i zwracamy nowych wartości — które są pisane wielką literą każdego słowa. Odbywa się to poprzez jawne określenie, co zrobimy z toUpperCase () dla pierwszej litery, slice () dla reszty ciągu oraz z ciągami połącz, aby uzyskać nową wersję tego słowa. Następnie scalamy tablicę i zwracamy ją

Rozwiązanie n ¬∞ 3: wyrażenia regularne

allow dźwignia = (str) => {let regex = / (^ | s) S / g return str.replace (regex, letter => letter.toUpperCase ()); } Pozostaw root = document.getElementById (`root`); root.innerHTML = JSON.stringify (wielkimi literami (szybki brunatny lis skoczył na leniwego psa „Ę”));

W tym rozwiązaniu używamy wyrażenia regularnego, aby znaleźć wszystkie niebiałe znaki (S) na początku ciągu (^ ) lub po spacji. Wskaźnik g na końcu oznacza globalny i pozwala znaleźć wszystkie instancje tego modelu. Następnie używamy metody replace w celu zastąpienia wzorca wyrażenia regularnego funkcją, która przyjmuje tę literę i zwraca ją wielką literą.

końcowe przemyślenia

Te rozwiązania nie są bynajmniej jedynymi rozwiązaniami ten problem .. Najprawdopodobniej, gdy zaczniesz robić więcej z tych, znajdziesz rozwiązania, które mogą lub nie mogą się różnić od tych przedstawionych w artykule lub blogu. To coś dobrego. Oznacza to, że zaczynasz myśleć jak inżynier - i o to właśnie chodzi.

Kontynuuj. W tych rozwiązaniach przypadki szczytowe nie są uwzględniane. Co powinieneś zrobić, jeśli twój temat jest pusty lub jest to liczba? Spróbuj dodać do powyższego kodu, rozwiązując te graniczne przypadki

Wskazówka:. Użyj wykrzyknika z kropką / bang, aby warunkowo sprawdzić, czy str istnieje. Zapoznaj się z dokumentacją MDN, aby dowiedzieć się, czy istnieje sposób na znalezienie rodzaju czegoś, gdy niekoniecznie wiesz, co to jest.

jedna rzecz : wypróbuj odwrócone ciągi wyzwań JavaScript , jeśli jeszcze tego nie zrobiłeś

Inne zasoby do rozważenia:

Używanie wyrażeń regularnych w Rubim — To jest dedykowane dla Rubiego, ale wyrażenie regularne jest często niezależne od języka — szybko ` Więcej informacji na temat składni RegExp znajdziesz w Rozwiązaniu # 1. 3.

Zastąp tekst JavaScript: przewodnik krok po kroku — samouczek poświęcony metodzie zastępowania zastosowanej w rozwiązaniu nr. 1.