Kaksi tapaa vahvistaa merkkijono loppu JavaScriptissä

Tässä artikkelissa selitän kuinka ratkaista freeCodeCampin ”Vahvista loppu -haaste. Tähän sisältyy sen tarkistaminen, päättyykö merkkijono tietyllä merkkijonolla.

Käsittelen kahta lähestymistapaa:

  1. käyttämällä substraatti () -menetelmää
  2. käyttäen endWith () -menetelmää

Algoritmihaasteen kuvaus

Tarkista, strpäättyykö merkkijono (ensimmäinen argumentti ) annetulla kohdejonolla (toinen argumentti, target).

Tämä haaste voidaan ratkaista .endsWith()menetelmällä, joka otettiin käyttöön ES2015: ssä. Mutta haastetta varten haluamme sinun käyttävän sen sijaan jotakin JavaScriptien alimekanismimenetelmistä.

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

Annetut testitapaukset

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.

Lähestymistapa # 1: Vahvista merkkijonon päättyminen sisäänrakennetuilla toiminnoilla - substraatilla ()

Tässä ratkaisussa käytetään String.prototype.substr () -menetelmää:

  • substr()Menetelmä palauttaa merkkijonon merkkejä, jotka alkavat tietyn sijainnin kautta määritetyn määrän merkkejä.

Miksi käytät string.substr(-target.length)?

Jos target.length on negatiivinen, substr () -menetelmä aloittaa laskemisen merkkijonon päästä, mitä haluat tässä koodihaasteessa.

Et halua käyttää string.substr(-1)merkkijonon viimeisen elementin saamista, koska jos kohde on pidempi kuin yksi kirjain:

confirmEnding("Open sesame", "same")

… Kohde ei palaa ollenkaan.

Joten täältä string.substr(-target.length)saat merkkijonon Bastian viimeisen hakemiston, joka on n.

Sitten tarkistat, onko kohde string.substr(-target.length)sama (tosi vai väärä).

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

Ilman kommentteja:

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

Voit käyttää kolmiportaista operaattoria if-käskyn pikavalintana:

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

Tämä voidaan lukea seuraavasti:

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

Palautat sitten kolmiosaisen operaattorin toiminnossasi:

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

Voit myös muokata koodiasi, jotta se olisi ytimekäs palauttamalla ehto:

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

Lähestymistapa # 2: Vahvista merkkijonon loppu sisäänrakennetuilla toiminnoilla - endWith ()

Tässä ratkaisussa käytetään String.prototype.endsWith () -menetelmää:

  • endsWith()Menetelmä määrittää, onko merkkijono päät merkkiä toisen merkkijonon, palaa truetai falsetarvittaessa. Tämä menetelmä erottaa kirjainkoon.
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');

Toivottavasti pidit tästä hyödyllisenä. Tämä on osa artikkelia "Kuinka ratkaista FCC-algoritmeja" freeCodeCamp Algorithm Challenges -sarjasta, jossa ehdotan useita ratkaisuja ja selitän askel askeleelta, mitä hupun alla tapahtuu.

Kolme tapaa toistaa merkkijono JavaScriptissä

Tässä artikkelissa selitän kuinka ratkaista freeCodeCampin ”Toista merkkijono toista merkkijono” -haaste. Tähän sisältyy…

Kolme tapaa kääntää merkkijono JavaScriptissä

Tämä artikkeli perustuu Free Code Camp Basic Algorithm Scripting "Käänteinen merkkijono"

Kolme tapaa laskea JavaScript JavaScriptiin

Tämä artikkeli perustuu Free Code Camp Basic Algorithm Scripting "Factorialize a Number"

Kaksi tapaa tarkistaa palindromit JavaScriptissä

Tämä artikkeli perustuu Free Code Camp Basic Algorithm Scripting "Check for Palindromes" -ohjelmaan.

Kolme tapaa löytää pisin sana merkkijonossa JavaScriptissä

Tämä artikkeli perustuu Free Code Camp Basic Algorithm Scripting "Etsi pisin sana merkkijonosta".

Kolme tapaa nimetä lause lause JavaScriptin

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

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

Tai voit seurata minua Mediumissa , Twitterissä, Githubissa ja LinkedInissä heti, kun napsautat vihreää sydäntä alla ;-)

# StayCurious, # KeepOnHacking & # MakeItHappen!

Lisäresurssit

  • subst () -menetelmä - MDN
  • () -menetelmällä - MDN
  • Ternary Operator - MDN