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', '.') );
indexOf usage
offset penetapan Parameter kedua yang diberikan kepada
Nampaknya saya katakan ia rumit, tetapi ia sebenarnya sangat mudah. Hanya lukiskan proses pelaksanaan di atas kertas dan anda akan faham🎜count++; 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 subrentetansubStr
bermula dari kedudukan indeks mengimbangi rentetan induk Apabilaoffset
ditemui , Hanyacount
+1, dan kemudian mula mencari dari kedudukanoffset += subStr.length
, keranaindexOf
hanya boleh menentukan lokasi awal daripada subrentetan yang ditemui. .