recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Concernant les statistiques du nombre de fois qu'un certain caractère apparaît dans une chaîne, j'ai vu un morceau de code en ligne et il y a une partie dont je ne comprends pas ce que cela signifie.

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', '.') );
迷茫迷茫2729 Il y a quelques jours1019

répondre à tous(1)je répondrai

  • typecho

    typecho2017-06-12 09:35:03

    indexOf utilisation
    count++; offset += subStr.length;count++; offset += subStr.length;
    count表示的是计数器,记下字符出现的次数
    offset赋值给 indexOf的第二个参数,表示从父字符串的 offset 索引位置开始 查找 子字符串subStr
    offset找到了,就count+1,再从offset += subStr.length的位置开始找,因为indexOfcount représente un compteur, enregistrant le nombre de fois qu'un caractère apparaît
    offset 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. .

    J'ai l'impression de dire que c'est compliqué, mais c'est en fait très simple. Dessinez simplement le processus d'exécution sur papier et vous comprendrez🎜.

    répondre
    0
  • Annulerrépondre