Saya telah mencoba pertanyaan FCC baru -baru ini, sama seperti peningkatan untuk melawan monster, saya telah melewati satu tingkat pada satu waktu, yang cukup menarik bagi saya. Saya meluangkan waktu untuk melakukan algoritma dasar yang diterapkan pada hari ini. Menurut beberapa tips, itu relatif sederhana. Saya pikir metode penanganan beberapa pertanyaan layak dipelajari. Misalnya, kadang -kadang Anda harus memproses karakter dalam suatu proyek. Jika Anda tidak dapat memikirkan beberapa metode terkait, itu cukup merepotkan. Jadi, rekam di sini. Jika Anda menemukan beberapa karakter atau pemrosesan array di masa depan, Anda dapat mencari artikel ini, berharap mendapatkan beberapa petunjuk alih -alih menerjemahkan dokumen.
Jika Anda melihat blogger ini, jika Anda memiliki kode yang lebih baik dan lebih sederhana atau ide -ide bagus, silakan tinggalkan pesan untuk berkomunikasi (saya selalu berpikir bahwa hanya dengan mempelajari kode orang lain yang baik dapat Anda buat kemajuan yang lebih cepat dan pemikiran yang lebih fleksibel). Untuk pemula, cobalah melakukannya sendiri tanpa melihat kode. (Pertanyaan -pertanyaan berikut tidak perlu mempertimbangkan tipe parameter. Secara ketat, penilaian harus dibuat pada tipe parameter, misalnya: typeof (arg) === Nomor)
1. Buka string
Balik string
Pertama -tama ubah string menjadi array, lalu gunakan metode terbalik dari array untuk membalik urutan array, dan akhirnya mengubah array menjadi string.
Hasil Anda harus menjadi string
function reversesstring (str) {str = str.split (''). reverse (). gabung (''); return str;} reversestring ("hello");2. Periksa Palindrom
Jika string yang diberikan adalah palindrome, kembalikan benar, sebaliknya, salah.
Jika sebuah string mengabaikan tanda baca, kasus dan ruang, dan membaca secara langsung dan membaca secara berlawanan, maka string ini adalah palindrome (palindrome).
Perhatikan bahwa Anda perlu menghapus tanda baca ekstra dan ruang string, dan kemudian mengonversi string ke huruf kecil untuk memverifikasi bahwa string adalah palindrome.
Nilai parameter fungsi dapat berupa "mobil balap", "mobil balap" dan "mobil balap".
function palindrome (str) {// Semoga berhasil! str = str.replace (/[/|/~ |/`/! tanda baca, ini adalah Baidu saya, dan saya tidak terlalu akrab dengan aturan JS str = str.replace (// s+/g); false;} palindrome ("mata");/*palindrome ("mata") harus mengembalikan true.palindrome ("mobil balap") harus mengembalikan true.palindrome ("bukan palindrome") harus mengembalikan false.palindrome ("seorang pria, rencana, kanal. Panama") harus mengembalikan true. false.palindrome ("hampiromla") harus mengembalikan false.palindrome ("Usia saya adalah 0, 0 si ega ym.") Harus mengembalikan true.palindrome ("1 mata untuk 1 mata.") Harus mengembalikan false.palindrome ("0_0 (:/-/ :) 0-0") akan kembali benar.*/3. Kasus Kalimat
Pastikan bahwa huruf pertama dari setiap kata dalam string dikapitalisasi dan sisanya adalah huruf kecil. (Misalnya: Titlecase ("I'm a Little Tea Pot") harus kembali "Saya sedikit teh pot". Titlecase ("Short and Stout") harus mengembalikan "pendek dan gagah".)
/*Pertanyaan ini sangat sederhana. Hal utama adalah memahami bahwa split () adalah membagi string menjadi gabungan array () adalah mengubah array menjadi string tolowercase () toupercase () konversi kasus. Perhatikan bahwa itu hanya berlaku untuk huruf, dan karakter lain (misalnya:/,!@) tidak valid*/fungsi titlecase (str) {str. Str.split (""); // segmen string ke dalam array sesuai dengan spasi untuk (var i = 0; i <str.length; i ++) {str [i] = str [i]. str [i] = str [i] .substring (0, 1) .tuppercase () + str [i] .substring (1); } return str.join (""); // Sambungkan array ke string melalui spasi} titlecase ("I'm a Little Tea Pot");4. Konfirmasikan akhirnya
Periksa apakah string (str) berakhir dengan string yang ditentukan (target).
Jika ya, kembalikan true; Jika tidak, kembalikan salah. Misalnya: konfirmasi ("bastian", "n") harus kembali benar. Konfirmasi ("Connor", "N") harus mengembalikan False. Konfirmasi ("Berjalan di atas air dan pengembangan perangkat lunak dari spesifikasi mudah jika keduanya beku", "spesifikasi") harus mengembalikan false.
Fungsi konfirmasi (str, target) {// "Never Give Up dan Good Luck akan menemukan Anda." //-falcor return str.substr (str.length-target.length) == target? Benar: false;} konfirmasi ("bastian", "n"); konfirmasi ("dia harus memberi saya nama baru", "na");/*konfirmasi ("bastian", "n") harus mengembalikan true.confirmending ("connor", "n") harus mengembalikan false.confirmending ("berjalan di atas air dan perangkat lunak yang berkembang dari spesifikasi adalah mudah jika kembalinya lebih mudah." false.confirmending ("Dia harus memberi saya nama baru", "nama") harus mengembalikan true.confirmending ("Dia harus memberi saya nama baru", "saya") harus kembali true.confirmending ("Dia harus memberi saya nama baru", "na") harus kembali.5. Ulangi string Ulangi string
Katakan hal -hal penting 3 kali!
Ulangi kali string yang ditentukan, dan kembalikan string kosong jika num adalah angka negatif. Misalnya:
ulangi ("*", 3) harus kembali "***".
Ulangi ("ABC", 3) harus mengembalikan "ABCABCABC".
Ulangi ("ABC", 4) harus mengembalikan "abcabcabcabc".
Ulangi ("ABC", 1) harus mengembalikan "ABC".
ulangi ("*", 8) harus kembali "*********".
Ulangi ("ABC", -2) harus kembali "".
Ketika Anda tidak dapat menyelesaikan tantangan, ingatlah untuk menggunakan langkah utama 'Read-Search-Ask'.
Berikut adalah beberapa sumber daya yang akan membantu Anda:
• Objek string global
fungsi ulangi (str, num) {// ulangi setelah saya var newsstr = str; if (num> 1) {for (var i = 1; i <num; i ++) {str += newstr; } return str; } lain jika (num == 1) {return str; } else {return ""; }} ulangi ("ABC", 3); ulangi ("*", 3);6. Monyet Chunky
Monyet memakan pisang tetapi memecahnya menjadi beberapa bagian untuk memakannya!
Bagilah array ARR menjadi beberapa blok array sesuai dengan ukuran array yang ditentukan.
Misalnya: chunk ([1,2,3,4], 2) = [[1,2], [3,4]];
chunk ([1,2,3,4,5], 2) = [[1,2], [3,4], [5]];
function chunk (arr, size) {// break it up.var arr1 = []; untuk (var i = 0; i <arr.length; i = i + size) {var arr2 = arr; arr1.push (arr2.slice (i, i + size)); } return arr1;} chunk (["a", "b", "c", "d"], 2);7. Falsy Bouncer
Raja monyet yang benar dan palsu!
Hapus semua nilai palsu dalam array.
Dalam JavaScript, nilai -nilai palsu adalah false, null, 0, "", tidak terdefinisi, dan nan.
Ketika Anda tidak dapat menyelesaikan tantangan, ingatlah untuk menggunakan langkah utama 'Read-Search-Ask'.
Berikut adalah beberapa sumber daya yang akan membantu Anda:
• Objek Boolean
• array.filter ()
Misalnya:
bouncer ([7, "makan", "", false, 9]) harus kembali [7, "makan", 9].
bouncer (["a", "b", "c"]) harus mengembalikan ["a", "b", "c"].
bouncer ([false, null, 0, nan, tidak terdefinisi, ""]) harus kembali [].
bouncer ([1, null, nan, 2, tidak terdefinisi]) harus kembali [1, 2].
/* Pertanyaan ini adalah tentang memahami filter. Ini adalah kode awal saya. Ini tidak ditulis dengan baik dan memiliki sedikit nilai referensi. Anda juga harus memperhatikan perbandingan NAN. diri Anda tidak sama dengan diri Anda sendiri (nan! = nan)*/function bouncer (arr) {// Jangan tunjukkan ID palsu kepada penjaga ini. var arr1 = []; var j = 0; arr.filter (function (val, index) {if (val === false || val === null || val === 0 || val === "" || val === tidak terdefinisi || val! == val) {arr1.push (index);}}); var len = arr1.length; untuk (var i = 0; i <len; i ++) {arr.splice (arr1 [i] -j, 1); j ++; } return arr;} bouncer ([7, "makan", "", false, 9]);8. Susun dan hancurkan
Mortar Jinx!
Menerapkan fungsi perusak, parameter pertama adalah array yang akan dihancurkan, dan parameter yang tersisa adalah nilai yang harus dihancurkan.
Misalnya:
Destroyer ([1, 2, 3, 1, 2, 3], 2, 3) harus kembali [1, 1].
Destroyer ([1, 2, 3, 5, 1, 2, 3], 2, 3) harus kembali [1, 5, 1].
Destroyer ([3, 5, 1, 2, 2], 2, 3, 5) harus kembali [1].
Destroyer ([2, 3, 2, 3], 2, 3) harus kembali [].
Destroyer (["Tree", "Hamburger", 53], "Tree", 53) harus kembali ["Hamburger"].
Berikut adalah beberapa sumber daya yang akan membantu Anda:
• Argumen objek
• array.filter ()
fungsi perusak (arr) {// hapus semua nilai var tempParguments = argumen; kembalikan arr.filter (function (entri) {for (var i = 1; i <Temparguments.length; i ++) {if (entri == TEMPARGUMEN [i]) {return false;}} return true;});} perusak ([1, 2, 3, 1, 2, 3], 2, 3);9. Di mana saya berada
Dimana saya?
Pertama -tama urutkan array, lalu temukan nilai yang ditentukan di lokasi array, dan akhirnya mengembalikan indeks yang sesuai dengan lokasi.
Sebagai contoh: di mana ([1,2,3,4], 1,5) harus kembali 1. Karena 1,5 dimasukkan ke dalam array [1, 2, 3, 4] dan menjadi [1, 1,5, 2, 3, 4], dan nilai indeks yang sesuai dengan 1,5 adalah 1.
Demikian pula, di mana ([20,3,5], 19) harus kembali 2. Karena array akan diurutkan pertama sebagai [3,5,20], 19 dimasukkan ke dalam array [3,5,20] dan menjadi [3,5,19,20], dan nilai indeks yang sesuai dengan 19 adalah 2.
Berikut adalah beberapa sumber daya yang akan membantu Anda:
• array.sort ()
fungsi di mana (arr, num) {// Temukan tempat saya di array yang diurutkan ini. // Perhatikan sort () sort () aturan aturan arr.sort (function (a, b) {return a- b;}); untuk (var i = 0; i <arr.length; i ++) {if (arr [i]> num | arr [i] == num) {return i; }} return arr.length;} di mana ([5, 3, 20, 3], 5);10.Cipher
Biarkan Tuhan menjadi milik Tuhan dan Kaisar milik Caesar.
Selanjutnya, kami akan memperkenalkan kata sandi Caesar Caesar Cipher, juga dikenal sebagai Kata Sandi Shift, yang populer di seluruh dunia.
Kata sandi shift berarti bahwa huruf dalam kata sandi akan digeser sesuai dengan nomor yang ditentukan.
Kasus umum adalah kata sandi ROT13, dan huruf akan digeser dengan 13 posisi. Oleh 'a' ↔ 'n', 'b' ↔ 'o', dan seterusnya.
Tulis fungsi ROT13 untuk mengimplementasikan string input terenkripsi dan output string yang didekripsi.
Semua huruf dikapitalisasi, jangan mengonversi karakter yang tidak ada huruf (misalnya: spasi, tanda baca). Jika Anda menemukan karakter khusus ini, lewati mereka.
Misalnya:
ROT13 ("Serr PBQR PNZC") harus diterjemahkan ke "Code Code Gratis"
ROT13 ("Serr CVMMN!") Harus diterjemahkan sebagai "pizza gratis!"
ROT13 ("Serr Ybir?") Harus didekodekan sebagai "cinta bebas?"
ROT13 ("gur dhvpx oebja qbt Whzcrq Bire gur ynml sbk.") Harus diterjemahkan sebagai "anjing cokelat cepat melompati rubah malas."
Berikut adalah beberapa sumber daya yang akan membantu Anda:
• string.charcodeat ()
• String.FromCharCode ()
fungsi rot13 (str) {// lbh qvq vg! var arr = str.touppercase (). split (""); var str1 = []; untuk (var i = 0; i <arr.length; i ++) {var arr1 = arr [i] .split (""); untuk (var j = 0; j <arr1.length; j ++) {var num = arr1 [j] .charcodeat (); if (num> = 65 && num <= 90) {arr1 [j] = num + 13> 90? String.FromCharCode (64 + (num + 13 - 90)): String.FromCharCode (num + 13); // 64 + (num + 13 - 90) untuk memahami mengapa itu 64,}} str1.push (arr1.join ("")); } return str1.join ("");} // Ubah input di bawah ini menjadi testRot13 ("Serr pbqr pnzc");Artikel di atas secara singkat membahas beberapa masalah algoritma dasar dalam karakter dan array di JS adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.