Rumah > Soal Jawab > teks badan
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', '.') );
typecho2017-06-12 09:35:03
indexOf usagecount++; offset += subStr.length;
count++; offset += subStr.length;
count
表示的是计数器,记下字符出现的次数offset
赋值给 indexOf
的第二个参数,表示从父字符串的 offset 索引位置开始 查找 子字符串subStr
当offset
找到了,就count
+1,再从offset += subStr.length
的位置开始找,因为indexOf
count
mewakili pembilang, merekodkan bilangan kali aksara munculindexOf
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. .