Dalam sebuah string, seperti 'Zhaochucichuzuiduodezifu', kami ingin mengetahui karakter yang paling muncul. Artikel ini akan menjelaskan metode dan ide secara rinci.
Pertama kali memperkenalkan dua metode dalam dua objek string : indexOf () dan charis () metode
Metode indexOf () memperkenalkan pengembalian kejadian pertama dari nilai string yang ditentukan dalam string
Metode charat () memperkenalkan karakter pengembalian pada posisi tertentu
Pertama lakukan tes kecil untuk menemukan di mana masing -masing 'i' muncul di string 'woainixiaoli'.
<script> var arr = 'woainixiaoli'; var index = -1; // Tentukan indeks variabel untuk mengontrol nilai indeks // ketika a tidak dapat ditemukan, yaitu, nilai indexof () adalah -1, loop end do {index = arr.indexof ("i", index + 1); // Gunakan indeks parameter kedua+1 untuk mengontrol setiap pencarian dimulai dari posisi indeks berikutnya dari karakter A ketika pencarian terakhir ditemukan jika (indeks! = -1) {// karakter iconsole.log (indeks); // Posisi output a}} while (index! = -1); </script>Setelah kode di atas dijalankan, output konsol
Pergi ke topik dan temukan karakter terbanyak di string 'Zhaochucichuzuiduodezifu'
Metode 1: Gunakan array (ada kerugian. Ketika ada lebih dari satu karakter yang muncul, hanya satu yang dapat ditemukan)
<script> var str = "zhaochucichuzuiduodezifu"; var arr = []; // tentukan array baru // loop melalui string untuk (var i = 0, panjang = str.length; i <length; i ++) {var index = -1; var j = 0;//temukan setiap karakter {index = str.index = -r = -1; var j = 0;/ {j ++;}} while (index! = -1); arr [j] = str [i]; // Tetapkan karakter dalam string str string ke data dengan array arr yang diindeks sebagai j. Setelah beberapa loop, penugasan berulang akan terjadi. // Penugasan selanjutnya akan menimpa penugasan sebelumnya, tetapi itu tidak akan mempengaruhi menemukan yang kita dengan karakter terbanyak} console.log (arr); console.log ("karakter terbanyak adalah" + arr [arr.length - 1]); console.log ("jumlah waktu adalah" + (arr.length - 1)); </script>Hasil kode di atas sedang dijalankan dan kemudian mengeluarkan konsol adalah sebagai berikut:
Ini juga dapat dilihat dari array output ARR bahwa metode ini akan menimpa karakter dengan jumlah yang sama dan hanya dapat menampilkan satu. Jika 2 karakter muncul dengan jumlah maksimum yang sama, metode ini hanya dapat memperolehnya. Berdasarkan ini, lihat metode berikutnya untuk menyelesaikannya dengan objek.
Metode 2: Gunakan Objek (Disarankan)
<script> var str = "zhaochucichuzuiduodezifu"; var o = {}; for (var i = 0, panjang = str.length; i <panjang; i ++) {// var char = str. o [char] ++; // tambahkan 1} else {o [char] = 1; // Jika kejadian pertama, jumlah kejadian ditandai sebagai 1}} console.log (o); // Output adalah objek lengkap, merekam setiap karakter dan nomor kejadiannya // bepergian melalui objek, menemukan karakter dengan kemunculan terbanyak dan jumlah kejadian var max = 0; var maxchar = null; untuk (tombol var di o) {if (max <o [kunci]) {max = o [kunci]; // Maxchar dengan jumlah terbesar kejadian maxchar = key; // Karakter yang sesuai adalah kunci saat ini}} console.log ("Kejadian yang paling adalah" + maxchar); console.log ("Jumlah kejadian adalah" + max); </skrip>Hasil kode di atas sedang dijalankan dan kemudian mengeluarkan konsol adalah sebagai berikut:
Metode ini memecahkan masalah metode satu, dan kita dapat dengan jelas mencatat jumlah kejadian masing -masing karakter. Ketika ada dua karakter dengan jumlah kali yang sama, mereka dapat dengan jelas terlihat pada objek.
Namun, masih ada kekurangan. Anda tidak dapat secara langsung menghasilkan karakter dengan jumlah tertinggi pada saat yang sama. Ini membutuhkan kondisi penilaian tambahan. Kode yang sempurna adalah sebagai berikut o (∩_∩) o
<script> var str = "nininiHaoa"; var o = {}; untuk (var i = 0, panjang = str.length; i <panjang; i ++) {var char = str.charat (i); if (o [char]) {o [char] ++; // tambahkan 1} else {o [char] = 1; // Jika kejadian pertama dicatat, berapa kali dicatat sebagai 1}} console.log (o); // Output adalah objek lengkap, merekam setiap karakter dan nomor kejadiannya // bepergian melalui objek dan menemukan karakter dengan kemunculan yang paling banyak var max = 0; untuk (tombol var dalam o) {if (max <o [key]) {max = o [key]; // Yang dengan jumlah max terbesar selalu disimpan}} untuk (tombol var di o) {if (o [key] == max) {//console.log(key);console.log(" paling banyak karakter adalah " + key); console.log (" Jumlah kejadian adalah " + max);} </script>Hasilnya adalah sebagai berikut:
Di atas adalah karakter yang diperkenalkan oleh editor kepada Anda bahwa karakter yang paling umum muncul dalam string JS. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!