Maison > Questions et réponses > le corps du texte
Aujourd'hui, j'ai utilisé la méthode split() pour compter le nombre de fois qu'un certain caractère apparaît dans une chaîne. Au fait, j'ai vérifié Baidu pour voir s'il existe d'autres méthodes. J'ai vu la fonction suivante, mais je ne comprends pas. ça count++; offset += subStr.length;
Qu'est-ce que ça veut dire ? S'il te plaît, laisse les seniors de passage l'expliquer !
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 utilisationcount++; offset += subStr.length;
count++; offset += subStr.length;
count
表示的是计数器,记下字符出现的次数offset
赋值给 indexOf
的第二个参数,表示从父字符串的 offset 索引位置开始 查找 子字符串subStr
当offset
找到了,就count
+1,再从offset += subStr.length
的位置开始找,因为indexOf
count
représente un compteur, enregistrant le nombre de fois qu'un caractère apparaîtoffset
affectation Le deuxième paramètre donné à indexOf
signifie rechercher la sous-chaîne subStr
à partir de la position d'index de décalage de la chaîne parent lorsque offset
est trouvé. , Juste count
+1, puis commencez la recherche à partir de la position de offset += subStr.length
, car indexOf
ne peut déterminer que l'emplacement initial de la sous-chaîne trouvée. .