Zwei Möglichkeiten, um das Ende eines Strings in JavaScript zu bestätigen

In diesem Artikel werde ich erklären, wie Sie die Herausforderung „Confirm the Ending “ von freeCodeCamp lösen können . Dies beinhaltet die Überprüfung, ob eine Zeichenfolge mit einer bestimmten Zeichenfolge endet.

Es gibt zwei Ansätze, die ich behandeln werde:

  1. mit der substr () -Methode
  2. Verwenden der Methode "offsWith ()"

Die Beschreibung der Algorithmus-Herausforderung

Überprüfen Sie, ob eine Zeichenfolge (erstes Argument str) mit der angegebenen Zielzeichenfolge (zweites Argument) endet target.

Diese Herausforderung kann mit der .endsWith()in ES2015 eingeführten Methode gelöst werden. Für diese Herausforderung möchten wir Sie jedoch bitten, stattdessen eine der JavaScript-Teilstring-Methoden zu verwenden.

function confirmEnding(string, target) { return string; } confirmEnding("Bastian", "n");

Bereitgestellte Testfälle

confirmEnding("Bastian", "n") should return true. confirmEnding("Connor", "n") should return false. confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification") should return false. largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]) should return [9, 35, 97, 1000000]. confirmEnding("He has to give me a new name", "name")should return true. confirmEnding("Open sesame", "same") should return true. confirmEnding("Open sesame", "pen") should return false. confirmEnding("If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing", "mountain") should return false. Do not use the built-in method .endsWith() to solve the challenge.

Ansatz 1: Bestätigen Sie das Ende eines Strings mit integrierten Funktionen - mit substr ()

Für diese Lösung verwenden Sie die Methode String.prototype.substr ():

  • Die substr()Methode gibt die Zeichen in einer Zeichenfolge zurück, die an der angegebenen Stelle durch die angegebene Anzahl von Zeichen beginnt.

Warum benutzt du string.substr(-target.length)?

Wenn die target.length negativ ist, startet die substr () -Methode die Zählung am Ende der Zeichenfolge, wie Sie es in dieser Code-Herausforderung möchten.

Sie möchten nicht verwenden string.substr(-1), um das letzte Element der Zeichenfolge abzurufen, da das Ziel länger als ein Buchstabe ist:

confirmEnding("Open sesame", "same")

… Das Ziel wird überhaupt nicht zurückkehren.

Hier string.substr(-target.length)erhalten Sie also den letzten Index der Zeichenfolge 'Bastian', der 'n' ist.

Dann prüfen Sie, ob string.substr(-target.length)das Ziel gleich ist (wahr oder falsch).

 function confirmEnding(string, target) { // Step 1. Use the substr method if (string.substr(-target.length) === target) { // What does "if (string.substr(-target.length) === target)" represents? // The string is 'Bastian' and the target is 'n' // target.length = 1 so -target.length = -1 // if ('Bastian'.substr(-1) === 'n') // if ('n' === 'n') // Step 2. Return a boolean (true or false) return true; } else { return false; } } confirmEnding('Bastian', 'n');

Ohne Kommentare:

 function confirmEnding(string, target) { if (string.substr(-target.length) === target) { return true; } else { return false; } } confirmEnding('Bastian', 'n');

Sie können einen ternären Operator als Verknüpfung für die if-Anweisung verwenden:

(string.substr(-target.length) === target) ? true : false;

Dies kann gelesen werden als:

if (string.substr(-target.length) === target) { return true; } else { return false; }

Sie geben dann den ternären Operator in Ihrer Funktion zurück:

 function confirmEnding(string, target) { return (string.substr(-target.length) === target) ? true : false; } confirmEnding('Bastian', 'n');

Sie können Ihren Code auch umgestalten, um ihn prägnanter zu gestalten, indem Sie einfach die Bedingung zurückgeben:

function confirmEnding(string, target) { return string.substr(-target.length) === target; } confirmEnding('Bastian', 'n');

Ansatz 2: Bestätigen Sie das Ende eines Strings mit integrierten Funktionen - mit EndsWith ()

Für diese Lösung verwenden Sie die Methode String.prototype.endsWith ():

  • Die endsWith()Methode bestimmt, ob eine Zeichenfolge mit den Zeichen einer anderen Zeichenfolge endet, zurückgegeben wird trueoder falseentsprechend. Bei dieser Methode wird zwischen Groß- und Kleinschreibung unterschieden.
function confirmEnding(string, target) { // We return the method with the target as a parameter // The result will be a boolean (true/false) return string.endsWith(target); // 'Bastian'.endsWith('n') } confirmEnding('Bastian', 'n');

Ich hoffe, Sie fanden das hilfreich. Dies ist Teil meiner Artikelserie „Wie man FCC-Algorithmen löst“ zu den Herausforderungen des freeCodeCamp-Algorithmus, in der ich verschiedene Lösungen vorschlage und Schritt für Schritt erkläre, was unter der Haube passiert.

Drei Möglichkeiten, eine Zeichenfolge in JavaScript zu wiederholen

In diesem Artikel werde ich erklären, wie Sie die Herausforderung "Wiederholen eines Strings, Wiederholen eines Strings" von freeCodeCamp lösen. Das beinhaltet…

Drei Möglichkeiten, einen String in JavaScript umzukehren

Dieser Artikel basiert auf dem Free Algorithmus Camp Basic Algorithm Scripting „Reverse a String“.

Drei Möglichkeiten, eine Zahl in JavaScript zu faktorisieren

Dieser Artikel basiert auf dem Free Algorithmus Camp Basic Algorithm Scripting „Factorialize a Number“.

Zwei Möglichkeiten, in JavaScript nach Palindromen zu suchen

Dieser Artikel basiert auf dem Free Code Camp Basic Algorithm Scripting „Auf Palindrome prüfen“.

Drei Möglichkeiten, das längste Wort in einer Zeichenfolge in JavaScript zu finden

Dieser Artikel basiert auf dem Free Algorithmus Camp Basic Algorithm Scripting „Finde das längste Wort in einer Zeichenfolge“.

Drei Möglichkeiten, einen Satz in JavaScript zu betiteln

Dieser Artikel basiert auf dem Free Algorithmus Camp Basic Algorithm Scripting „Title Case a Satz“.

Wenn Sie eine eigene Lösung oder Vorschläge haben, teilen Sie diese unten in den Kommentaren mit.

Oder du kannst mir auf Medium , Twitter, Github und LinkedIn folgen , gleich nachdem du auf das grüne Herz unten geklickt hast ;-)

# StayCurious, # KeepOnHacking & # MakeItHappen!

Zusätzliche Ressourcen

  • substr () -Methode - MDN
  • EndsWith () -Methode - MDN
  • Ternärer Operator - MDN