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.
迷茫
迷茫 2017-06-12 09:33:03
0
1
1025

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', '.') );
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

membalas semua(1)
typecho

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🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan