Kolme tapaa nimetä lause lause JavaScriptin

Tämä artikkeli perustuu Free Code Camp Basic Algorithm Scripting " Title Case a Sentence " -sarjaan .

Tässä algoritmissa haluamme muuttaa tekstimerkkijonoa siten, että jokaisen sanan alussa on aina iso kirjain.

Tässä artikkelissa aion selittää kolme lähestymistapaa. Ensin FOR-silmukalla, toisella map () -menetelmällä ja kolmannella korvaamalla () -menetelmällä.

Algoritmihaaste

Palauta annettu merkkijono jokaisen sanan alkukirjaimella. Varmista, että loput sanasta ovat pieniä.

Tätä harjoitusta varten sinun tulee myös käyttää isoja kirjaimia, kuten "ja".

Annetut testitapaukset

  • titleCase ("Olen pieni teekannu") pitäisi palauttaa merkkijono.
  • titleCase ("Olen pieni teekannu") pitäisi palauttaa "Olen pieni teekannu ".
  • titleCase (“sHoRt AND sToUt”) palauttaa “Short And Stout”.
  • titleCase (“TÄSSÄ ON KÄSITTELYNI TÄSSÄ ON KANAVANI”) pitäisi palauttaa ”Tässä on minun kahva” Tässä on nokkani ”.

1. Otsikko Tapaa lause lause FOR-silmukalla

Tässä ratkaisussa käytämme String.prototype.toLowerCase () -menetelmää, String.prototype.split () -menetelmää, String.prototype.charAt () -menetelmää, String.prototype.slice () -menetelmää ja Array-menetelmää. prototyyppi.join () menetelmä.

  • ToLowerCase () Metodi palauttaa soittavan merkkijonoarvoksi muunneta pieniksi kirjaimiksi
  • Split () menetelmä jakaa String esine merkkijonojen joukko erottamalla merkkijonon merkkijonoa.
  • CharAt () menetelmä palauttaa tietyn merkin merkkijono.
  • Viipale () menetelmä erottaa osa merkkijonon ja palauttaa uuden merkkijonon.
  • Liittyä () menetelmä liittyy kaikkien osien joukko tulee merkkijono.

Meidän on lisättävä tyhjä tila split () -menetelmän sulkeiden väliin ,

var strSplit = "I'm a little tea pot".split(' ');

joka tuottaa joukon erotettuja sanoja:

var strSplit = ["I'm", "a", "little", "tea", "pot"];

Jos et lisää suluissa olevaa tilaa, sinulla on tämä lähtö:

var strSplit = ["I", "'", "m", " ", "a", " ", "l", "i", "t", "t", "l", "e", " ", "t", "e", "a", " ", "p", "o", "t"];

Yhdistämme

str[i].charAt(0).toUpperCase()

- joka suurentaa nykyisen merkkijonon indeksin 0 merkin FOR-silmukassa -

ja

str[i].slice(1)

- joka purkaa hakemistosta 1 merkkijonon loppuun.

Asetamme koko merkkijonon pieniin kirjaimiin normalisointitarkoituksia varten.

Kommenteilla:

 function titleCase(str) { // Step 1. Lowercase the string str = str.toLowerCase(); // str = "I'm a little tea pot".toLowerCase(); // str = "i'm a little tea pot"; // Step 2. Split the string into an array of strings str = str.split(' '); // str = "i'm a little tea pot".split(' '); // str = ["i'm", "a", "little", "tea", "pot"]; // Step 3. Create the FOR loop for (var i = 0; i  "I'm A Little Tea Pot" } titleCase("I'm a little tea pot");

Ilman kommentteja:

function titleCase(str) { str = str.toLowerCase().split(' '); for (var i = 0; i < str.length; i++) { str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1); } return str.join(' '); } titleCase("I'm a little tea pot");

2. Otsikko Tapaa lause lause kartan () menetelmällä

Tässä ratkaisussa käytämme Array.prototype.map () -menetelmää.

  • Kartta () menetelmä luo uuden array tuloksiin kutsuvan säädetty toimi kaikilla osa tätä array. Kartan käyttäminen kutsuu tarjotun soittopyynnön kerran matriisin jokaiselle elementille järjestyksessä ja rakentaa tuloksista uuden taulukon.

Pienennämme merkkijonoa ja jaamme merkkijonon edellisessä esimerkissä nähden ennen map () -menetelmän soveltamista.

FOR-silmukan käyttämisen sijaan käytämme map () -menetelmää ehdoksi samalle ketjutukselle edellisestä esimerkistä.

(word.charAt(0).toUpperCase() + word.slice(1));

Kommenteilla:

 function titleCase(str) { // Step 1. Lowercase the string str = str.toLowerCase() // str = "i'm a little tea pot"; // Step 2. Split the string into an array of strings .split(' ') // str = ["i'm", "a", "little", "tea", "pot"]; // Step 3. Map over the array .map(function(word) { return (word.charAt(0).toUpperCase() + word.slice(1)); /* Map process 1st word: "i'm" => (word.charAt(0).toUpperCase() + word.slice(1)); "i'm".charAt(0).toUpperCase() + "i'm".slice(1); "I" + "'m"; return "I'm"; 2nd word: "a" => (word.charAt(0).toUpperCase() + word.slice(1)); "a".charAt(0).toUpperCase() + "".slice(1); "A" + ""; return "A"; 3rd word: "little" => (word.charAt(0).toUpperCase() + word.slice(1)); "little".charAt(0).toUpperCase() + "little".slice(1); "L" + "ittle"; return "Little"; 4th word: "tea" => (word.charAt(0).toUpperCase() + word.slice(1)); "tea".charAt(0).toUpperCase() + "tea".slice(1); "T" + "ea"; return "Tea"; 5th word: "pot" => (word.charAt(0).toUpperCase() + word.slice(1)); "pot".charAt(0).toUpperCase() + "pot".slice(1); "P" + "ot"; return "Pot"; End of the map() method */ }); // Step 4. Return the output return str.join(' '); // ["I'm", "A", "Little", "Tea", "Pot"].join(' ') => "I'm A Little Tea Pot" } titleCase("I'm a little tea pot");

Ilman kommentteja:

function titleCase(str) { return str.toLowerCase().split(' ').map(function(word) { return (word.charAt(0).toUpperCase() + word.slice(1)); }).join(' '); } titleCase("I'm a little tea pot");

3. Otsikko Tapaa lause lause Kartan () ja korvaa () -menetelmillä

Tätä ratkaisua varten jatkamme Array.prototype.map () -menetelmän käyttöä ja lisätään String.prototype.replace () -menetelmä.

  • Korvaa () Metodi palauttaa uuden merkkijonon joidenkin tai kaikkien ottelut kuvio korvattu korvaamisesta.

Meidän tapauksessamme substituutio () -metodin malli on merkkijono, joka korvataan uudella korvaavalla, ja sitä käsitellään sanatarkkana merkkijonona. Voimme käyttää myös säännöllistä lauseketta mallina tämän algoritmin ratkaisemiseksi.

Pienennämme ja jaamme merkkijonon ensimmäisessä esimerkissä esitetyllä tavalla ennen map () -menetelmän soveltamista.

Kommenteilla:

 function titleCase(str) { // Step 1. Lowercase the string str = str.toLowerCase() // str = "i'm a little tea pot"; // Step 2. Split the string into an array of strings .split(' ') // str = ["i'm", "a", "little", "tea", "pot"]; // Step 3. Map over the array .map(function(word) { return word.replace(word[0], word[0].toUpperCase()); /* Map process 1st word: "i'm" => word.replace(word[0], word[0].toUpperCase()); "i'm".replace("i", "I"); return word => "I'm" 2nd word: "a" => word.replace(word[0], word[0].toUpperCase()); "a".replace("a", "A"); return word => "A" 3rd word: "little" => word.replace(word[0], word[0].toUpperCase()); "little".replace("l", "L"); return word => "Little" 4th word: "tea" => word.replace(word[0], word[0].toUpperCase()); "tea".replace("t", "T"); return word => "Tea" 5th word: "pot" => word.replace(word[0], word[0].toUpperCase()); "pot".replace("p", "P"); return word => "Pot" End of the map() method */ }); // Step 4. Return the output return str.join(' '); // ["I'm", "A", "Little", "Tea", "Pot"].join(' ') => "I'm A Little Tea Pot" } titleCase("I'm a little tea pot");

Ilman kommentteja:

function titleCase(str) { return str.toLowerCase().split(' ').map(function(word) { return word.replace(word[0], word[0].toUpperCase()); }).join(' '); } titleCase("I'm a little tea pot");

Toivottavasti pidit tästä hyödyllisenä. Tämä on osa artikkeliani "How to Solve FCC Algorithms" Free Code Camp Algorithm Challenges -sarjasta, jossa ehdotan useita ratkaisuja ja selitän askel askeleelta, mitä hupun alla tapahtuu.

Kolme tapaa toistaa merkkijono JavaScriptissä

In this article, I’ll explain how to solve freeCodeCamp’s “Repeat a string repeat a string” challenge. This involves…

Two ways to confirm the ending of a String in JavaScript

In this article, I’ll explain how to solve freeCodeCamp’s “Confirm the Ending” challenge.

Three Ways to Reverse a String in JavaScript

This article is based on Free Code Camp Basic Algorithm Scripting “Reverse a String”

Three Ways to Factorialize a Number in JavaScript

This article is based on Free Code Camp Basic Algorithm Scripting “Factorialize a Number”

Two Ways to Check for Palindromes in JavaScript

This article is based on Free Code Camp Basic Algorithm Scripting “Check for Palindromes”.

Three Ways to Find the Longest Word in a String in JavaScript

This article is based on Free Code Camp Basic Algorithm Scripting “Find the Longest Word in a String”.

Kolme tapaa löytää suurin joukko joukkoa JavaScriptin avulla

Tässä artikkelissa aion selittää kuinka ratkaista Free Code Campin "Palauta suurimmat numerot matriiseissa" -haaste. Tämä…

Jos sinulla on oma ratkaisusi tai ehdotuksia, jaa ne alla kommenteissa.

Tai voit seurata minua Mediumissa , Twitterissä, Githubissa ja LinkedInissä .

# StayCurious, # KeepOnHacking & # MakeItHappen!

Resurssit

  • toLowerCase () -menetelmä - MDN
  • toUpperCase () -menetelmä - MDN
  • charAt () -menetelmä - MDN
  • slice () -menetelmä - MDN
  • split () menetelmä - MDN
  • join () menetelmä - MDN
  • puolesta - MDN
  • map () -menetelmä - MDN
  • korvaa () -menetelmä - MDN