Dva načina za potvrđivanje završetka niza u JavaScript-u

U ovom ću članku objasniti kako riješiti izazov "Potvrdi završetak " freeCodeCampa . To uključuje provjeru završava li niz određenim nizom znakova.

Postoje dva pristupa koja ću opisati:

  1. pomoću metode substr ()
  2. korištenjem metode ENDWith ()

Opis izazova za algoritam

Provjerite strzavršava li niz (prvi argument, ) zadanim ciljnim nizom (drugi argument, target).

Ovaj se izazov može riješiti .endsWith()metodom koja je uvedena u ES2015. Ali u svrhu ovog izazova željeli bismo da umjesto toga koristite jednu od metoda podnizanja JavaScript.

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

Dati test slučajevi

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.

Pristup br. 1: Potvrdite završetak niza ugrađenim funkcijama - substr ()

Za ovo rješenje upotrijebit ćete metodu String.prototype.substr ():

  • The substr()metoda vraća likova u nizu s početkom u određenom mjestu kroz određeni broj znakova.

Zašto koristiš string.substr(-target.length)?

Ako je target.length negativan, metoda substr () započet će brojanje od kraja niza, što želite u ovom izazovu koda.

Ne želite koristiti string.substr(-1)za dobivanje posljednjeg elementa niza, jer ako je cilj duži od jednog slova:

confirmEnding("Open sesame", "same")

... cilj se uopće neće vratiti.

Dakle, ovdje string.substr(-target.length)ćemo dobiti zadnji indeks niza 'Bastian' koji je 'n'.

Zatim provjeravate je li string.substr(-target.length)jednako cilju (točno ili netačno).

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

Bez komentara:

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

Možete koristiti ternarni operator kao prečac za naredbu if:

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

To se može čitati kao:

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

Zatim vraćate ternarni operator u svoju funkciju:

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

Možete i refaktorizirati svoj kôd da biste ga učinili sažetijim vraćanjem uvjeta:

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

Pristup br. 2: Potvrdite završetak niza ugrađenim funkcijama - s goalsWith ()

Za ovo rješenje upotrijebit ćete metodu String.prototype.endsWith ():

  • endsWith()Način određuje da li string završava s likovima drugog niza, vraćajući trueili falseprema potrebi. Ova metoda razlikuje velika i mala slova.
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');

Nadam se da vam je ovo pomoglo. Ovo je dio mog niza članaka "Kako riješiti FCC algoritme" o izazovima algoritma freeCodeCamp, u kojima predlažem nekoliko rješenja i korak po korak objašnjavam što se događa ispod haube.

Tri načina za ponavljanje niza u JavaScript-u

U ovom ću članku objasniti kako riješiti izazov FreeCodeCampa "Ponovi niz ponavljaj niz". To uključuje ...

Tri načina za preokret niza u JavaScript-u

Ovaj se članak temelji na skripti skripta algoritma Free Code Camp "Obrni niz"

Tri načina za faktorizaciju broja u JavaScript-u

Ovaj se članak temelji na skripti za osnovni algoritam Free Code Camp “Faktorizacija broja”

Dva načina za provjeru palindroma u JavaScript-u

Ovaj se članak temelji na skripti skripta algoritma Free Code Camp "Provjeri palindrome".

Tri načina za pronalaženje najduže riječi u nizu u JavaScript-u

Ovaj se članak temelji na skripti za osnovni algoritam Free Code Camp “Pronađi najdužu riječ u nizu”.

Tri načina naslova rečenice u JavaScript-u

Ovaj se članak temelji na skriptiranju osnovnog algoritma Free Code Camp, „Naslov slučaja rečenica“.

Ako imate svoje rješenje ili bilo kakve prijedloge, podijelite ih u nastavku u komentarima.

Ili me možete pratiti na Mediumu , Twitteru, Githubu i LinkedInu , odmah nakon što kliknete zeleno srce ispod ;-)

# Ostanite znatiželjni, # KeepOnHacking & # MakeItHappen!

Dodatna sredstva

  • metoda substr () - MDN
  • završava s metodom () - MDN
  • Ternarni operater - MDN