Javascript Eerste letter met hoofdletter

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

Er zijn veel code-uitdagingen voor beginners die je zullen helpen om meer als een ingenieur te gaan denken. Een van die uitdagingen is dat je de eerste letter van elk woord in een bepaalde tekenreeks met een hoofdletter schrijft. In dit artikel bekijken we de prompt en verschillende mogelijke oplossingen in JavaScript.

Gegeven een functie, hoofdletter, die str bevat als parameter, retourneer die str met elk woord met een hoofdletter. Probeer piekgevallen in uw oplossing te bedenken (niet als invoer, verkeerd type invoer, enz.).

Aanpak

  1. Kijk nogmaals naar de prompt. Noteer of markeer alle trefwoorden die u in de formulering kunt vinden.
  2. Combineer de betekenis van het woordprobleem. Een deel van het moeilijkste deel van het doen van code-uitdagingen is proberen erachter te komen wat het probleem van je vraagt. Als u het probleem begrijpt, kunt u het een heel eind op weg helpen.
  3. een mogelijke pseudocode-oplossing. Het hoeft niet de daadwerkelijke code te zijn (het hoeft niet uitvoerbaar te zijn in uw IDE- of consolebrowser - eenvoudig Engels is prima):

Los het probleem stap voor stap zorgvuldig op. Het zal u helpen bij het bedenken van tipgevallen - gevallen waarin een onjuiste invoer of een lege string kan worden doorgegeven - en hoe u het probleem kunt opdelen in logische stappen. Dit is in feite uw experimenteerfase - er zijn geen foute antwoorden, alleen gedachten over hoe u het probleem kunt aanpakken. Deze gedachten kunnen misleidend of misleidend zijn - zo leert u over gewonnen benaderingen voor het oplossen van een probleem

Ik heb ontdekt dat als ik het kan opsplitsen door het hardop uit te leggen, de logica eenvoudiger is. Uw kilometerstand kan variëren, afhankelijk van uw aanpak, maar ik wilde u op zijn minst voorstellen voor het geval het voor u werkt! De bijnaam voor een klein probleem als dit lijkt een beetje overdreven, maar als je het concept nu oefent, zal het gemakkelijker voor je zijn als je aan veel moeilijkere problemen werkt.

De oplossingen

Oplossing # 1: splits () en loop met de methoden String.replace () en charAt ()

leave = hoofdletters (str) => {= stop verlof str.split (``); for (ofwel i = 0; i

In deze eerste oplossing verdelen we de string op zijn spaties. Dit geeft ons een arr elk uniek woord als index. De lus op de array geeft ons de mogelijkheid om toegang te krijgen tot de persoonlijke indices van elke string. We hebben de string (de string in dit geval is arr [i]) opnieuw toegewezen aan index i als resultaat van het vervangen van de string op index 0 (arr [i] .charAt (0) met zijn waarde in hoofdletters. Arr in een string met spaties tussen elk van de woorden

Oplossing #2: splitsen met de kaartmethode en slice

In deze oplossing beginnen we op een vergelijkbare manier, maar we gebruiken een ES6-arraymethode genaamd luskaart via het netwerk en de terugkeer van nieuwe waarden ​​die het eerste teken van elk woord met een hoofdletter beginnen. Het doet dit door expliciet aan te geven wat we zullen doen met de toUpperCase () voor de eerste letter, de slice () voor de rest van de tekenreeks en de tekenreeksen samenvoegen om de nieuwe versie van het woord te krijgen. Vervolgens voegen we de array samen en retourneren deze

Oplossing n ° 3: reguliere expressies

allow leverage = (str) => {let regex = / (^ | s) S / g return str.replace (regex, letter => letter.toUpperCase ()); } Laat root = document.getElementById (`root`); root.innerHTML = JSON.stringify (hoofdletters (snelle bruine vos sprong op luie hond ​​`));

In deze oplossing gebruiken we een reguliere expressie om alle niet-witte tekens (S) aan het begin van de tekenreeks te vinden (^ ) of na een spatie (s). De indicator g aan het einde betekent globaal en stelt ons in staat om alle instanties van dit model te vinden. Vervolgens gebruiken we de methode Replace om dat regex-patroon te vervangen door een functie die die letter aanneemt en in hoofdletters teruggeeft.

laatste gedachten

Deze oplossingen zijn zeker niet de enige oplossingen voor dit probleem .. Naarmate je meer van deze dingen gaat doen, zul je hoogstwaarschijnlijk oplossingen vinden die al dan niet kunnen verschillen van de oplossingen die in een artikel of blog worden gepresenteerd. Dit is iets goeds. Het betekent dat je begint te denken als een ingenieur - en dat is het punt.

Doorgaan. In deze oplossingen worden piekgevallen niet aangepakt. Wat moet je doen als je onderwerp leeg is of een getal is? Probeer de bovenstaande code aan te vullen door deze grensgevallen aan te pakken

Tip :. Gebruik een punt / bang uitroepteken om voorwaardelijk te bepalen of str bestaat. Bekijk de MDN-documenten om erachter te komen of er een manier is om het type te achterhalen, terwijl je niet per se weet wat het is.

één ding : probeer reverse javascript challenge strings als je dat nog niet hebt gedaan

Andere bronnen om te overwegen:

Reguliere expressies gebruiken in Ruby - Dit is gewijd aan Ruby, maar reguliere expressies zijn vaak taalonafhankelijk - snel ` Kijk voor meer informatie over RegExp-syntaxis in Oplossing # 1. 3.

JavaScript-tekst vervangen: een stapsgewijze handleiding - Een zelfstudie gewijd aan de vervangingsmethode, gebruikt in oplossing n. 1.