Policz całkowitą ilość określonego słowa w ciągu JavaScript

Nov 27 2020

Chcę dowiedzieć się, ile razy określone słowa występują w JavaScript typu String, lub możemy powiedzieć całkowitą ilość dopasowanych / dopasowanych słów z pełnym ciągiem zdań w JavaScript.

query = "fake";

var inputString = "fakefakefakegg fake 00f0 221 Hello wo fake misinfo fakeddfakefake , wo misinfo misinfo co wo fake , fake fake fake ";

oczekiwany wynik = 13 (w powyższym zdaniu jest 13 fałszywych)

Odpowiedzi

FarbodAprin Nov 27 2020 at 11:02

Oto dwie metody znajdowania całkowitej liczby pasujących słów w ciągu.

Pierwsza funkcja umożliwia podanie zapytania jako danych wejściowych. Drugi wykorzystuje funkcję .match JavaScript.

Obie wprowadzone metody są odporne na dowolne znaki i niezależne od rozdzielacza i separatora typu „” lub „,”.

str1 to twoje zapytanie

 str1 = "fake";  

str2 to cały ciąg:

 var inputString = "fakefakefakegg fake 00f0 221 Hello wo fake misinfo
 fakeddfakefake , wo  431,,asd misinfo misinfo co wo fake sosis bandari
 mikhori?, fake fake fake ";

Metoda 1: użyj funkcji .indexOf lub .search w JavaScript (zaletą jest możliwość podania danych wejściowych)

function CountTotalAmountOfSpecificWordInaString(str1, str2)
{
    let next = 0;
    let findedword = 0;
        do {
            var n = str2.indexOf(str1, next);
            findedword = findedword +1;
            next = n + str1.length;
            }while (n>=0);
     console.log("total finded word :" , findedword - 1 );
     return findedword;
   }

Metoda 2: użyj funkcji .match JavaScript:

/**
 * @return {number}
 *  you have to put fake as query manually in this solution!!! disadvantage
 */

function CountTotalAmountOfMachedWordInaString(str2) {
    let machedWord = 0;
    machedWord = str2.match(/fake/g).length; 
    console.log("total finded mached :" , machedWord);
    return machedWord;
}

wywołać funkcje (Wejścia):

CountTotalAmountOfSpecificWordInaString("fake" , "fake fakefakegg fake 00f0 221 Hello wo fake rld fakefakefake , wo lklsak dalkkfakelasd co wo fake , fake fake fake" );
CountTotalAmountOfMachedWordInaString("sosis bandarie fake  khiyarshour sosis , droud bar fake to sosis3");


//Function 1 Output: total Fake = 13 , Function 2 Output: total Fake = 2