Kaks võimalust Stringi lõppu kinnitada JavaScriptis

Selles artiklis selgitan, kuidas lahendada freeCodeCampi väljakutse “Kinnita lõpp . See hõlmab kontrollimist, kas string lõpeb konkreetse tähemärkide järjestusega.

Käsitlen kahte lähenemisviisi:

  1. kasutades substr () meetodit
  2. kasutades endWith () meetodit

Algoritmi väljakutse kirjeldus

Kontrollige, kas string (esimene argument, str) lõpeb antud sihtstringiga (teine ​​argument, target).

Selle väljakutse saab lahendada .endsWith()meetodiga, mis võeti kasutusele ES2015-s. Kuid selle väljakutse jaoks soovime, et kasutaksite mõnda JavaScripti alamstringimeetodit.

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

Pakutakse testjuhtumeid

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ähenemisviis nr 1: kinnitage sisseehitatud funktsioonidega stringi lõpp - subst-ga ()

Selle lahenduse jaoks kasutate meetodit String.prototype.substr ():

  • substr()Meetod tagastab tähemärki string algab määratud asukohta läbi kindlaksmääratud arvu märke.

Miks te kasutate string.substr(-target.length)?

Kui target.length on negatiivne, alustab meetod substr () loendamist stringi lõpust, mida te selles koodiväljaandes soovite.

Te ei soovi seda kasutada string.substr(-1)stringi viimase elemendi saamiseks, sest kui sihtmärk on pikem kui üks täht:

confirmEnding("Open sesame", "same")

... sihtmärk ei naase üldse.

Nii saab siit string.substr(-target.length)stringi 'Bastian' viimase indeksi, mis on 'n'.

Seejärel kontrollite, kas string.substr(-target.length)sihtmärk on võrdne (tõene või vale).

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

Kommentaarideta:

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

If- lause otseteena saate kasutada kolmekordset operaatorit :

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

Seda võib lugeda järgmiselt:

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

Seejärel tagastate kolmefaasilise operaatori oma funktsioonis:

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

Samuti saate tingimusega tagastades oma koodi lühemaks muuta, et see oleks lühem.

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

Lähenemisviis nr 2: kinnitage sisseehitatud funktsioonidega stringi lõpp - endWith ()

Selle lahenduse jaoks kasutate meetodit String.prototype.endsWith ():

  • endsWith()Meetod määrab, kas string otsad koos tähtedega teise stringi, tagastades truevõi falsekui see on asjakohane. See meetod on tõstutundlik.
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');

Loodetavasti leidsite sellest abi. See on osa minu artiklist "Kuidas lahendada FCC algoritme" freeCodeCamp algoritmi väljakutsetest, kus pakun välja mitu lahendust ja selgitan samm-sammult, mis kapoti all toimub.

Kolm viisi stringi kordamiseks JavaScriptis

Selles artiklis selgitan, kuidas lahendada freeCodeCampi väljakutse "Korda stringi kordus string". See hõlmab…

Kolm viisi stringide ümberpööramiseks JavaScriptis

See artikkel põhineb Free Code Campi algoritmi skriptimisel „Stringi ümberpööramine”

Kolm viisi, kuidas arv JavaScript JavaScriptis kindlaks teha

See artikkel põhineb Free Code Campi algoritmide skriptimisel “Arvu faktoreerimine”

Kaks viisi palindroomide kontrollimiseks JavaScripti abil

See artikkel põhineb Free Code Campi algoritmi skriptimisel „Kontrolli palindroome”.

Kolm viisi, kuidas leida JavaScripti stringi kõige pikem sõna

See artikkel põhineb Free Code Campi algoritmide skriptimisel „Leidke stringi pikim sõna”.

Kolm viisi, kuidas JavaScripti laused pealkirjastada

See artikkel põhineb Free Code Campi algoritmide skriptimisel "Pealkirja juhtum lause".

Kui teil on oma lahendus või ettepanekuid, jagage neid allpool kommentaarides.

Või saate jälgida mind Medium , Twitter, Github ja LinkedIn , kohe pärast klõpsate roheline süda allpool ;-)

# StayCurious, # KeepOnHacking & # MakeItHappen!

Lisaressursid

  • subst () meetod - MDN
  • lõpeb meetodiga () - MDN
  • Kolmepoolne operaator - MDN