Dua cara untuk mengonfirmasi akhir dari String di JavaScript

Dalam artikel ini, saya akan menjelaskan cara menyelesaikan tantangan "Konfirmasi Akhir " dari freeCodeCamp . Ini melibatkan pemeriksaan apakah sebuah string diakhiri dengan urutan karakter tertentu.

Ada dua pendekatan yang akan saya bahas:

  1. menggunakan metode substr ()
  2. menggunakan metode endWith ()

Deskripsi Tantangan Algoritma

Periksa apakah sebuah string (argumen pertama, str) diakhiri dengan string target yang diberikan (argumen kedua, target).

Tantangan ini dapat diatasi dengan .endsWith()metode yang diperkenalkan di ES2015. Namun untuk tujuan tantangan ini, kami ingin Anda menggunakan salah satu metode substring JavaScript sebagai gantinya.

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

Kasus uji yang disediakan

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.

Pendekatan # 1: Konfirmasi Akhir dari String Dengan Fungsi Bawaan - dengan substr ()

Untuk solusi ini, Anda akan menggunakan metode String.prototype.substr ():

  • The substr()kembali metode karakter dalam string dimulai pada lokasi yang ditentukan melalui jumlah tertentu dari karakter.

Mengapa Anda menggunakan string.substr(-target.length)?

Jika target.length negatif, metode substr () akan mulai menghitung dari akhir string, yang Anda inginkan dalam tantangan kode ini.

Anda tidak ingin menggunakan string.substr(-1)untuk mendapatkan elemen terakhir dari string, karena jika target lebih dari satu huruf:

confirmEnding("Open sesame", "same")

… Target tidak akan kembali sama sekali.

Jadi disini string.substr(-target.length)akan didapat indeks terakhir dari string 'Bastian' yaitu 'n'.

Kemudian Anda memeriksa apakah string.substr(-target.length)sama dengan target (benar atau salah).

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

Tanpa komentar:

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

Anda dapat menggunakan operator terner sebagai pintasan untuk pernyataan if:

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

Ini bisa dibaca sebagai:

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

Anda kemudian mengembalikan operator terner dalam fungsi Anda:

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

Anda juga dapat memfaktorkan ulang kode Anda agar lebih ringkas dengan hanya mengembalikan kondisi:

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

Pendekatan # 2: Konfirmasi Akhir dari String Dengan Fungsi Bawaan - dengan endWith ()

Untuk solusi ini, Anda akan menggunakan metode String.prototype.endsWith ():

  • The endsWith()Metode menentukan apakah string berakhir dengan karakter dari string lain, kembali trueatau falseyang sesuai. Metode ini peka huruf besar / kecil.
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');

Saya harap ini bermanfaat bagi Anda. Ini adalah bagian dari seri artikel “Cara Memecahkan Algoritma FCC” saya di Tantangan Algoritma freeCodeCamp, di mana saya mengusulkan beberapa solusi dan menjelaskan langkah demi langkah apa yang terjadi di balik terpal.

Tiga cara untuk mengulang string dalam JavaScript

Dalam artikel ini, saya akan menjelaskan cara menyelesaikan tantangan "Repeat a string repeat a string" freeCodeCamp. Ini melibatkan…

Tiga Cara Membalikkan String di JavaScript

Artikel ini didasarkan pada Skrip Algoritme Dasar Camp Kode Gratis "Membalikkan String"

Tiga Cara Memfaktorialisasi Angka dalam JavaScript

Artikel ini didasarkan pada Skrip Algoritma Dasar Free Code Camp "Faktorialisasi Nomor"

Dua Cara untuk Memeriksa Palindrom di JavaScript

Artikel ini didasarkan pada Skrip Algoritma Dasar Free Code Camp "Periksa Palindrom".

Tiga Cara untuk Menemukan Kata Terpanjang dalam String di JavaScript

Artikel ini didasarkan pada Skrip Algoritma Dasar Free Code Camp "Temukan Kata Terpanjang dalam String".

Tiga Cara untuk Judul Kasus Kalimat dalam JavaScript

Artikel ini didasarkan pada Skrip Algoritma Dasar Camp Kode Gratis "Judul Kasus Kalimat".

Jika Anda memiliki solusi atau saran Anda sendiri, bagikan di bawah di komentar.

Atau Anda dapat mengikuti saya di Medium , Twitter, Github dan LinkedIn , tepat setelah Anda mengklik ikon hati hijau di bawah ;-)

# StayCurious, # KeepOnHacking & # MakeItHappen!

Sumber daya tambahan

  • substr () metode - MDN
  • metodeendsWith () - MDN
  • Operator Ternary - MDN