cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Mengenai statistik bilangan kali watak tertentu muncul dalam rentetan, saya melihat sekeping kod dalam talian dan terdapat bahagian di dalamnya yang saya tidak faham maksudnya.

Hari ini saya menggunakan kaedah split() untuk mengira bilangan kali aksara tertentu muncul dalam rentetan, saya menyemak Baidu untuk melihat sama ada saya melihat fungsi berikut, tetapi saya tidak faham itu count++; offset += subStr.length; Apa maksudnya?

function countInstances (mainStr, subStr) {
    var count = 0;
    var offset = 0;
    do{
        offset = mainStr.indexOf(subStr, offset); // 通过indexOf获得某字符在字符串中出现的位置
        if( offset != -1 ) { // 如果某字符存在于字符串中
            count++;
            offset += subStr.length;
        }
    } while ( offset != -1 );
    return count;
}
countInstances('www.segmentfault.com', '.')
// alert( countInstances('www.segmentfault.com', '.') );
迷茫迷茫2729 hari yang lalu1018

membalas semua(1)saya akan balas

  • typecho

    typecho2017-06-12 09:35:03

    indexOf usage
    count++; offset += subStr.length;count++; offset += subStr.length;
    count表示的是计数器,记下字符出现的次数
    offset赋值给 indexOf的第二个参数,表示从父字符串的 offset 索引位置开始 查找 子字符串subStr
    offset找到了,就count+1,再从offset += subStr.length的位置开始找,因为indexOfcount mewakili pembilang, merekodkan bilangan kali aksara muncul
    offset penetapan Parameter kedua yang diberikan kepada indexOf bermaksud mencari subrentetan subStr bermula dari kedudukan indeks mengimbangi rentetan induk Apabila offset ditemui , Hanya count+1, dan kemudian mula mencari dari kedudukan offset += subStr.length, kerana indexOf hanya boleh menentukan lokasi awal daripada subrentetan yang ditemui. .

    Nampaknya saya katakan ia rumit, tetapi ia sebenarnya sangat mudah. ​​Hanya lukiskan proses pelaksanaan di atas kertas dan anda akan faham🎜

    balas
    0
  • Batalbalas