Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Statystyki łańcucha znaków

czwartek,

Statystyki łańcucha znaków

Policzenie wszystkich wystąpień znaków w łańcuchu za pomocą języka JavaScript tylko wydaje się trudnym zadaniem. W prezentowanym skrypcie zrealizowano to przy pomocy pętli. Wykorzystano także właściwość łańcuchów znaków polegającą na możliwości odwołania się do pojedynczego znaku w podobny sposób jak w przypadku elementów tablic (zapis s[i]). Dodatkowego wyjaśnienia wymaga także fragment stats[s[i]] || (stats[s[i]] = 0) z dziewiątego wiersza. Ten skrócony zapis oznacza: jeśli nie istnieje wywołany element, zainicjuj go z wartością zero.

W prezentowanym skrypcie zastosowano prosty obiekt (stats) mapujący klucze na wartości. Nazwami kluczy stają się znaki z analizowanego łańcucha. Wartości to sumy wystąpień danego znaku. Dzięki wykorzystaniu kluczy w takiej postaci łatwo zliczyć wystąpienia poszczególnych elementów. Wywołanie s[i] zawsze zwraca kolejny znak określony indeksem i.

Gdyby wielkość liter miała być ignorowana, można na początku użyć np. metody toLowerCase(), która zamienia wszystkie litery na małe. Dalsza część skryptu będzie działać bez zmian.

var x, u, s, i;
var stats = {};

s = 'Centrum Kształcenia Zawodowego i Ustawicznego!';
x = s.length;
u = 0;

for(i=0; i < x; i++) {
  stats[s[i]] || (stats[s[i]] = 0);
  stats[s[i]]++;
}
  
console.log('Łańcuch znaków: ' + s);
console.log('Długość łańcucha: ' + x);

for(i in stats) {
  console.log("'" + i + "': " + stats[i]);
  u++;
}

console.log('Unikalne znaki w ciągu: ' + u);

W części wypisującej wyniki analizy (druga pętla) zliczana jest ilość unikalnych znaków występujących w łańcuchu. Wynik działania skryptu trafia do konsoli JavaScript. W takie narzędzie są wyposażone wszystkie współczesne popularne przeglądarki stron internetowych, najczęściej można je wywołać za pomocą klawisza F12 (w Firefoksie skrót Ctrl+Shift+K).

Widoczny w konsoli JavaScript efekt działania skryptu:

Łańcuch znaków: Centrum Kształcenia Zawodowego i Ustawicznego!
Długość łańcucha: 46
'C': 1
'e': 4
'n': 3
't': 3
'r': 1
'u': 1
'm': 1
' ': 4
'K': 1
's': 2
'z': 2
'a': 4
'ł': 1
'c': 2
'i': 3
'Z': 1
'w': 3
'o': 4
'd': 1
'g': 2
'U': 1
'!': 1
Unikalne znaki w ciągu: 22
Artykuł: Arm Holdings

Arm Holdings

Artykuł: Podstawowe style CSS dla formularza

Podstawowe style CSS dla formularza

Artykuł: Powstanie zabajkalskie

Powstanie zabajkalskie

Artykuł: JS: Obsługa kółka myszy

JS: Obsługa kółka myszy

Artykuł: Rocznica urodzin Stanisława&nbsp;Skalskiego

Rocznica urodzin Stanisława Skalskiego

Artykuł: Tadeusz Karnkowski

Tadeusz Karnkowski

Nasze technikum

Szkoły dla dorosłych

Pełna oferta edukacyjna