Kolm viisi, kuidas JavaScripti laused pealkirjastada

See artikkel põhineb Free Code Campi algoritmide skriptimisel " Pealkirja juhtum lause ".

Selles algoritmis soovime tekstistringi muuta nii, et iga sõna alguses oleks alati suur täht.

Selles artiklis selgitan kolme lähenemisviisi. Esiteks FOR-silmusega, teiseks meetodiga map () ja kolmandaks asendus () -meetod.

Algoritmi väljakutse

Tagastage antud string iga suure algustähega. Veenduge, et ülejäänud sõna oleks väiketähtedega.

Selle harjutuse jaoks peaksite kirjutama suurtähega ka ühendavaid sõnu nagu “the” ja “of”.

Pakutakse testjuhtumeid

  • titleCase (“Ma olen väike teekann”) peaks tagastama stringi.
  • titleCase ("Ma olen väike teekann") peaks tagastama "Ma olen väike teekann ".
  • titleCase (“sHoRt AND sToUt”) peaks tagastama väärtuse “Short And Stout”.
  • titleCase („HERE IS MY HANDLE HERE IS MY SPOUT“) peaks tagastama „Siin on minu käepide Siin on minu tila“.

1. Pealkiri FOR Loopi juhtumiga

Selle lahenduse jaoks kasutame meetodit String.prototype.toLowerCase (), meetodit String.prototype.split (), meetodit String.prototype.charAt (), meetodit String.prototype.slice () ja massiivi. prototüüp.join () meetod.

  • Meetod toLowerCase () tagastab väiketähtedeks teisendatud kutsungi stringi väärtuse
  • Split () meetodi lõheneb String objekt massiivi stringe eraldades string alamstringide.
  • Meetod charAt () tagastab stringist määratud märgi.
  • Viilu () meetodi eraldab osa string ja tagastab uue stringi.
  • Liituda () meetod ühendab kõiki massiivi elemente string.

Peame split () meetodi sulgude vahele lisama tühja ruumi ,

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

mis väljastab eraldatud sõnade massiivi:

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

Kui te sulgudesse tühikut ei lisa, on teil järgmine väljund:

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

Me ühendame

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

- mis suurendab FOR-silmus praeguse stringi indeksi 0 märki -

ja

str[i].slice(1)

- mis ekstraheeritakse indeksist 1 stringi lõpuni.

Normaliseerimise eesmärgil määrame kogu stringi väiketähtedega.

Kommentaaridega:

 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");

Kommentaarideta:

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. Pealkiri Lause juhtum kaardi () meetodiga

Selle lahenduse jaoks kasutame meetodit Array.prototype.map ().

  • Meetod map () loob uue massiivi, mille tulemused pakuvad selle massiivi iga elemendi jaoks pakutava funktsiooni kutsumist. Kaardi kasutamine kutsub massiivi iga elemendi jaoks üks kord järjestatud tagasihelistamisfunktsiooni ja konstrueerib tulemustest uue massiivi.

Enne map () meetodi rakendamist tõstame stringi väiketähtedega ja jagame need eelmises näites näha.

FOR-tsükli kasutamise asemel rakendame eelmise näite sama liitmise tingimusena meetodit map ().

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

Kommentaaridega:

 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");

Kommentaarideta:

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. Pealkiri Looge lause lause Kaardi () ja asendusmeetoditega ()

Selle lahenduse jaoks jätkame meetodi Array.prototype.map () kasutamist ja lisame meetodi String.prototype.replace ().

  • Asendada () meetod tagastab uue stringi mõned või kõik kohtumised mustri asendada asendamine.

Meie puhul on meetod Replace () muster String, mis asendatakse uue asendusega, ja seda käsitletakse sõnasõnalise stringina. Selle algoritmi lahendamiseks võime mustrina kasutada ka regulaaravaldist .

Enne map () meetodi rakendamist tõstame stringi väikeste tähtedega ja jagame need esimeses näites näha.

Kommentaaridega:

 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");

Kommentaarideta:

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");

Loodetavasti leidsite sellest abi. See on osa minu artiklist "Kuidas lahendada FCC algoritme" Free Code Camp Algorithm Challenges, kus pakun välja mitu lahendust ja selgitan samm-sammult, mis kapoti all toimub.

Kolm viisi stringi kordamiseks JavaScriptis

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”.

Kolmel viisil leiate massiivi suurima arvu JavaScripti abil

Selles artiklis selgitan, kuidas lahendada Free Code Campi väljakutse “Massiivide suurimate arvude tagastamine”. See ...

Kui teil on oma lahendus või ettepanekuid, jagage neid allpool kommentaarides.

Või saate jälgida mind Medium , Twitter, Github ja LinkedIn .

# StayCurious, # KeepOnHacking & # MakeItHappen!

Ressursid

  • toLowerCase () meetod - MDN
  • toUpperCase () meetod - MDN
  • charAt () meetod - MDN
  • viilu () meetod - MDN
  • split () meetod - MDN
  • liitu () meetod - MDN
  • poolt - MDN
  • kaardi () meetod - MDN
  • meetod asendama () - MDN