Dva načina za potrditev konca niza v JavaScript

V tem članku bom razložil, kako rešiti izziv FreeCodeCampa "Potrdi konec " . To vključuje preverjanje, ali se niz konča z določenim zaporedjem znakov.

Obstajata dva pristopa, ki jih bom obravnaval:

  1. z uporabo metode substr ()
  2. z uporabo metode ENDWith ()

Opis izziva za algoritem

Preverite, ali se niz (prvi argument, str) konča z danim ciljnim nizom (drugi argument, target).

Ta izziv je mogoče rešiti z .endsWith()metodo, ki je bila uvedena v ES2015. Toda za namen tega izziva bi radi uporabili eno od metod podnizov JavaScript.

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

Priloženi testni primeri

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.

Pristop št. 1: Potrdite konec niza z vgrajenimi funkcijami - s substr ()

Za to rešitev boste uporabili metodo String.prototype.substr ():

  • Za substr()Metoda vrne znakov v nizu, ki se začnejo na določeno lokacijo skozi določeno število znakov.

Zakaj uporabljate string.substr(-target.length)?

Če je target.length negativna, bo metoda substr () začela štetje od konca niza, kar želite v tem izzivu kode.

Ne želite uporabiti string.substr(-1)zadnjega elementa niza, ker če je cilj daljši od ene črke:

confirmEnding("Open sesame", "same")

… Cilj se sploh ne bo vrnil.

Tu string.substr(-target.length)bomo dobili zadnji indeks niza 'Bastian', ki je 'n'.

Nato preverite, ali je string.substr(-target.length)enak cilju (true ali false).

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

Brez komentarjev:

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

Kot bližnjico za stavek if lahko uporabite ternarni operator :

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

To lahko beremo kot:

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

Nato v svojo funkcijo vrnete ternarni operator:

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

Kodo lahko tudi refaktorizirate, da postane bolj jedrnata, tako da preprosto vrnete pogoj:

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

Pristop št. 2: Potrdite konec niza z vgrajenimi funkcijami - s konci z ()

Za to rešitev boste uporabili metodo String.prototype.endsWith ():

  • endsWith()Metoda določa, ali niz konča z znake drugega niza, se vračajo trueali falsekot je primerno. Ta metoda razlikuje med velikimi in malimi črkami.
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');

Upam, da se vam je to zdelo koristno. To je del moje serije člankov »Kako rešiti algoritme FCC« o izzivih freeCodeCamp Algorithm, kjer predlagam več rešitev in po korakih razlagam, kaj se dogaja pod pokrovom.

Trije načini ponovitve niza v JavaScript

V tem članku bom razložil, kako rešiti izziv FreeCodeCampa "Ponovi niz, ponovi niz". To vključuje ...

Trije načini za spreminjanje niza v JavaScript

Ta članek temelji na scenariju Basic Code Camp Algorithm Scripting “Reverse a string”

Trije načini za razčlenitev števila v JavaScript

Ta članek temelji na skriptu »Basic Factorialize a Number«, ki temelji na algoritmu Free Code Camp.

Dva načina za preverjanje palindromov v JavaScript

Ta članek temelji na skriptu »Basic Check Algorithm Scripting« Preveri palindrome ».

Trije načini za iskanje najdaljše besede v nizu v JavaScript

Ta članek temelji na skriptnem scenariju Basic Code Camp Algorithm "Poiščite najdaljšo besedo v nizu".

Trije načini naslova stavka v JavaScript

Ta članek temelji na scenariju Basic Code Camp Algorithm Scripting “Title Case a Sentence”.

Če imate svojo rešitev ali kakršne koli predloge, jih delite spodaj v komentarjih.

Lahko pa me spremljate na Medium , Twitter, Github in LinkedIn , takoj po kliku na zeleno srce spodaj ;-)

# Ostanite radovedni, # KeepOnHacking & # MakeItHappen!

Dodatni viri

  • metoda substr () - MDN
  • metode endWith () - MDN
  • Ternarni operater - MDN