Du būdai patvirtinti eilutės pabaigą „JavaScript“

Šiame straipsnyje paaiškinsiu, kaip išspręsti „freeCodeCamp iššūkį „Patvirtinti pabaigą . Tai reiškia, kad reikia patikrinti, ar eilutė baigiasi konkrečia simbolių seka.

Yra du požiūriai, kuriuos apžvelgsiu:

  1. naudojant substr () metodą
  2. naudojant endWith () metodą

Algoritmo iššūkio aprašymas

Patikrinkite, ar eilutė (pirmasis argumentas, str) baigiasi nurodytąja eilute (antrasis argumentas, target).

Šį iššūkį galima išspręsti taikant .endsWith()metodą, kuris buvo įvestas ES2015. Tačiau norėdami, kad šis iššūkis būtų, jūs vietoj to naudokite vieną iš „JavaScript“ pakraščių metodų.

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

Pateikti bandymo atvejai

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 požiūris: patvirtinkite eilutės pabaigą naudodami integruotas funkcijas - su substr ()

Šiame sprendime naudosite metodą String.prototype.substr ():

  • Į substr()metodas grąžina simbolių eilutę pradeda nurodytoje vietoje per tikrą skaičių simbolių.

Kodėl naudojatės string.substr(-target.length)?

Jei target.length yra neigiamas, metodas substr () pradės skaičiavimą nuo eilutės pabaigos, ko jūs norite šiame kodo iššūkyje.

Nenorite naudoti string.substr(-1)norėdami gauti paskutinį eilutės elementą, nes jei taikinys yra ilgesnis nei viena raidė:

confirmEnding("Open sesame", "same")

... taikinys visiškai negrįš.

Taigi čia string.substr(-target.length)gausite paskutinį eilutės „Bastian“ indeksą, kuris yra „n“.

Tada patikrinsite, ar string.substr(-target.length)lygus tikslui (teisingas, ar melas).

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

Be komentarų:

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

Galite naudoti trijų komponentų operatorių kaip nuorodos „if“ nuorodą:

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

Tai galima skaityti taip:

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

Tada grąžinate trikampį operatorių savo funkcijoje:

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

Taip pat galite pakeisti savo kodą, kad jis būtų glaustesnis, tiesiog grąžindami sąlygą:

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

2 požiūris: patvirtinkite eilutės pabaigą su įmontuotomis funkcijomis - su endWith ()

Šiam sprendimui naudosite metodą String.prototype.endsWith ():

  • endsWith()Metodas nustato, ar eilutė baigiasi kitą eilutę simbolių, grąžinant truear falsekaip tinkamas. Šis metodas skiriamas didžiosiomis ir mažosiomis raidėmis.
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');

Tikiuosi, kad jums tai buvo naudinga. Tai yra mano straipsnių „How to Solve FCC Algorithms“ dalis apie „freeCodeCamp Algorithm Challenges“, kur aš siūlau keletą sprendimų ir žingsnis po žingsnio paaiškinu, kas vyksta po gaubtu.

Trys būdai, kaip pakartoti eilutę „JavaScript“

Šiame straipsnyje paaiškinsiu, kaip išspręsti „freeCodeCamp“ iššūkį „Pakartokite eilutę pakartokite eilutę“. Tai apima…

Trys būdai, kaip pakeisti eilutę „JavaScript“

Šis straipsnis yra pagrįstas „Free Code Camp“ pagrindinio algoritmo scenarijaus „Stygos pakeitimas“

Trys būdai, kaip apskaičiuoti skaičių „JavaScript“

Šis straipsnis yra pagrįstas „Free Code Camp“ pagrindinio algoritmo scenarijaus „Skaičiaus nustatymas“

Du būdai patikrinti, ar „JavaScript“ nėra palindromų

Šis straipsnis yra pagrįstas „Free Code Camp“ pagrindinių algoritmų scenarijų „Palindromų tikrinimas“.

Trys būdai, kaip rasti ilgiausią „JavaScript“ eilutės žodį

Šis straipsnis yra paremtas „Free Code Camp“ pagrindinių algoritmų scenarijais „Raskite ilgiausią eilutės žodį“.

Trys būdai, kaip įvesti sakinį „JavaScript“

Šis straipsnis yra pagrįstas „Free Code Camp“ pagrindinio algoritmo scenarijaus „Pavadinimo atvejis sakiniu“.

Jei turite savo sprendimą ar kokių nors pasiūlymų, pasidalykite jais toliau komentaruose.

Arba galite sekti mane „ Medium“ , „Twitter“, „Github“ ir „ LinkedIn“ , iškart po to, kai spustelėsite žalią širdį žemiau ;-)

# StayCurious, # KeepOnHacking ir # MakeItHappen!

Papildomi resursai

  • substr () metodas - MDN
  • baigiasi () metodu - MDN
  • „Ternary Operator“ - MDN