Három módszer a mondat elnevezésére a JavaScript-ben

Ez a cikk a „Free Code Camp Basic Algorithm Scripting“ Title Case a Sentence szkripteken alapul .

Ebben az algoritmusban meg akarunk változtatni egy szövegrészt, hogy minden szó elején mindig legyen nagybetű.

Ebben a cikkben három megközelítést fogok elmagyarázni. Először egy FOR hurokkal, másodszor a map () módszerrel, harmadikként pedig a helyettesítés () módszerrel.

Algoritmus kihívás

Tegye vissza a megadott karakterláncot az egyes szavak nagybetűvel írt első betűjével. Ügyeljen arra, hogy a szó többi része kisbetűvel legyen.

Ennek a gyakorlatnak a használatával nagybetűket kell írnia az olyan összekötő szavakról is, mint a „a” és a „of”.

Biztosított tesztesetek

  • A titleCase („Én vagyok egy kis teáskanna”) karakterláncot ad vissza.
  • titleCase-nek („Én vagyok egy kis teáskanna”) vissza kell adnia a következőt: „Én vagyok egy kis teáskanna”.
  • A titleCase („sHoRt AND sToUt”) vissza kell adnia a „Short And Stout” értéket.
  • A titleCase („ITT A KEZELEM ITT A KÖNYVEM”) vissza kell adnia az „Itt van a kezem, itt van a kifolyóm” feliratot .

1. Cím: Mondat esete FOR-hurokkal

Ehhez a megoldáshoz a String.prototype.toLowerCase () metódust, a String.prototype.split () metódust, a String.prototype.charAt () metódust, a String.prototype.slice () és az Array metódust fogjuk használni. prototípus.join () módszer.

  • A toLowerCase () metódus visszaadja a hívó karakterlánc értékét kisbetűvé konvertálva
  • A split () metódus egy string karakterobjektumra osztja fel a String objektumot azáltal, hogy sztringet sztringekre választ el.
  • A charAt () metódus a megadott karaktert adja vissza egy karakterláncból.
  • A slice () metódus kivonja a karakterlánc egy szakaszát, és új karakterláncot ad vissza.
  • A join () metódus egy tömb összes elemét egy karaktersorozatba kapcsolja .

Hozzá kell adnunk egy üres helyet a split () metódus zárójelei közé ,

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

amely különálló szavak tömbjét adja ki:

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

Ha a zárójelben nem adja meg a szóközt, akkor ez a kimenet lesz:

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

Összefűzünk

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

- amely nagybetűvel írja be az aktuális karakterlánc 0 karakterét a FOR ciklusban -

és

str[i].slice(1)

- amely az 1. indexből a karakterlánc végéig fog kibontakozni.

Normalizálás céljából az egész karakterláncot kisbetűre állítjuk.

Megjegyzésekkel:

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

Hozzászólások nélkül:

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. Cím Mondat esete a térkép () módszerrel

Ehhez a megoldáshoz az Array.prototype.map () metódust fogjuk használni.

  • A map () metódus új tömböt hoz létre annak az eredménynek a meghívásával, amely a tömb minden elemén meghív egy megadott függvényt. A térkép használata egy sorrendben egy tömb minden eleméhez egyszer meghív egy megadott visszahívási funkciót, és az eredményekből új tömböt állít össze.

A map () metódus alkalmazása előtt kis betűkkel osztjuk szét a karakterláncot, az előző példában látható módon.

A FOR ciklus használata helyett a map () metódust alkalmazzuk feltételként az előző példa azonos összefűzéséhez.

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

Megjegyzésekkel:

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

Hozzászólások nélkül:

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. Cím megadása egy mondatot A térkép () és a csere () módszerekkel

Ehhez a megoldáshoz továbbra is az Array.prototype.map () metódust fogjuk használni, és hozzáadjuk a String.prototype.replace () metódust.

  • A csere () metódus új karakterláncot ad vissza, a minta egyezésének vagy egészének egyezésével helyettesítve.

Esetünkben a csere () metódus mintája egy String lesz, amelyet egy új helyettesítünk, és szó szerint karakterláncként kezeljük. Szabályos kifejezést is használhatunk mintaként ennek az algoritmusnak a megoldására.

A map () metódus alkalmazása előtt kisbetűkkel osztjuk szét a karakterláncot az első példában látható módon.

Megjegyzésekkel:

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

Hozzászólások nélkül:

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

Remélem, hasznosnak találta ezt. Ez része a Free Code Camp Algorithm Challenges című „Hogyan lehet megoldani az FCC algoritmusokat” című cikksorozatomnak, ahol számos megoldást javaslok, és lépésről lépésre elmagyarázom, mi történik a motorháztető alatt.

Három módon ismételhetünk egy karakterláncot a JavaScript-ben

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

Three ways you can find the largest number in an array using JavaScript

In this article, I’m going to explain how to solve Free Code Camp’s “Return Largest Numbers in Arrays” challenge. This…

If you have your own solution or any suggestions, share them below in the comments.

Or you can follow me on Medium, Twitter, Github and LinkedIn.

‪#‎StayCurious‬, ‪#‎KeepOnHacking‬ & ‪#‎MakeItHappen‬!

Resources

  • toLowerCase() method — MDN
  • toUpperCase() method — MDN
  • charAt() method — MDN
  • slice() method — MDN
  • split() method — MDN
  • join() method — MDN
  • for — MDN
  • map() method — MDN
  • replace() method — MDN