שתי דרכים לאשר את סיום המחרוזת ב- JavaScript

במאמר זה אסביר כיצד לפתור את האתגר "אשר את הסיום " של freeCodeCamp . זה כרוך בבדיקה אם מחרוזת מסתיימת ברצף תווים ספציפי.

ישנן שתי הגישות שאעסוק בהן:

  1. באמצעות שיטת substr ()
  2. באמצעות שיטת endsWith ()

תיאור אתגר האלגוריתם

בדוק אם מחרוזת (ארגומנט ראשון, str) מסתיימת במחרוזת היעד הנתונה (ארגומנט שני, target).

את האתגר הזה ניתן לפתור .endsWith()בשיטה שהוצגה ב- ES2015. אך לצורך אתגר זה, אנו רוצים שתשתמש במקום זאת באחת משיטות המצע של JavaScript.

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

מקרי מבחן מסופקים

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.

גישה מס '1: אשר סיום מחרוזת עם פונקציות מובנות - עם סובסטר ()

לפתרון זה, תשתמש בשיטת String.prototype.substr ():

  • substr()תשואות שיטת הדמויות מחרוזת החל במיקום שצוין באמצעות מספר מסוים של תווים.

מדוע אתה משתמש string.substr(-target.length)?

אם target.length הוא שלילי, שיטת substr () תתחיל את הספירה מסוף המחרוזת, וזה מה שאתה רוצה באתגר קוד זה.

אינך רוצה להשתמש string.substr(-1)בכדי להשיג את האלמנט האחרון של המחרוזת, כי אם המטרה ארוכה מאות אחת:

confirmEnding("Open sesame", "same")

... היעד לא יחזור בכלל.

אז הנה string.substr(-target.length)נקבל את האינדקס האחרון של המחרוזת 'Bastian' שהיא 'n'.

ואז אתה בודק אם string.substr(-target.length)שווה ליעד (נכון או לא נכון).

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

בלי תגובות:

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

אתה יכול להשתמש באופרטור שלישית כקיצור דרך למשפט if:

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

ניתן לקרוא זאת כ:

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

לאחר מכן אתה מחזיר את האופרטור השלישי לתפקיד שלך:

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

אתה יכול גם לשקף את הקוד שלך כדי להפוך אותו לתמציתי יותר על ידי החזרת התנאי:

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

גישה מס '2: אשר את סיום המחרוזת עם פונקציות מובנות - עם קצות עם ()

לפתרון זה, תשתמש בשיטת String.prototype.endsWith ():

  • endsWith()השיטה קובעת אם קצות מחרוזת עם הדמויות של מחרוזת אחרת, חוזרת trueאו falseעל פי צורך. שיטה זו תלויה באותיות רישיות.
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');

אני מקווה שמצאת את זה מועיל. זה חלק מסדרת המאמרים שלי "כיצד לפתור אלגוריתמים של FCC" על אתגרי האלגוריתם freeCodeCamp, שם אני מציע מספר פתרונות ומסביר צעד אחר צעד מה קורה מתחת למכסה המנוע.

שלוש דרכים לחזור על מחרוזת ב- JavaScript

במאמר זה אסביר כיצד לפתור את האתגר "חזור על מחרוזת וחזור על מחרוזת" של freeCodeCamp. זה כרוך ...

שלוש דרכים להפוך מחרוזת ב- JavaScript

מאמר זה מבוסס על תסריט סקריפט אלגוריתם בסיסי של Free Code Camp "הפוך מחרוזת"

שלוש דרכים לפקטור מספר ב- JavaScript

מאמר זה מבוסס על כתיבת תסריט אלגוריתם בסיסי בקוד Free Camp "לפקטוריזציה של מספר"

שתי דרכים לבדיקת palindromes ב- JavaScript

מאמר זה מבוסס על סקריפטים בסיסיים של אלגוריתמים בסיסיים בקוד Free Camp "בדוק אם מדובר בפלינדרומים".

שלוש דרכים למצוא את המילה הארוכה ביותר במחרוזת ב- JavaScript

מאמר זה מבוסס על תסריט תסריט אלגוריתם בסיסי של Free Code Camp "מצא את המילה הארוכה ביותר במחרוזת".

שלוש דרכים לכותרת מקרה משפט ב- JavaScript

מאמר זה מבוסס על תסריט תסריט אלגוריתם בסיסי של Free Code Camp "כותרת מקרה משפט".

אם יש לך פתרון משלך או הצעות כלשהן, שתף אותם למטה בתגובות.

או שאתה יכול לעקוב אותי בינוני , טוויטר, Github ו LinkedIn , מיד לאחר הלחיצה על הלב הירוק מתחת ;-)

# StayCurious, # KeepOnHacking & # MakeItHappen!

משאבים נוספים

  • שיטת substr () - MDN
  • endsWith () שיטה - MDN
  • מפעיל טריניארי - MDN