• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja sprawdzająca w ciągu znaków ilość takich samych liter z rzędu

0 głosów
1,260 wizyt
pytanie zadane 17 listopada 2018 w JavaScript przez Luckyluck87 Użytkownik (660 p.)

Witam serdecznie,

Potrzebuje stworzyć funkcję w JavaScript która pobiera ciąg znaków (np. taki "TTRRUUUUREEETER") i sprawdza w nim czy któraś z liter występuje obok siebie 3 lub więcej razy. Jeżeli tak to usuwa ten rząd liter , po czy dalej sprawdza i tak do skutku aż nie będzie obok siebie więcej niż dwa takie same znaki. Czyli żeby funkcja zwróciła to co zostało po usunięciu wszystkich grup liter.

Czyli żeby, wg powyższego przykładowego Stringa:

Po 1 sprawdzeniu zostało: "TTRRRTER"

Po 2 sprawdzeniu: "TTTER"

Na końcu funkcja zwróci: "ER"

Napisałem coś takiego:

function letters(string){

    var unique = '';

    for(var i=0; i<string.length; i++) {
 
        if(unique.indexOf(string[i])==-1) {

            unique += string[i];
        }
    }
    return unique;
}
console.log(letters('TTRRUUUUREEETER'));

Ale niestety ta funkcja redukuje wszystkie zduplikowane litery do jednej , zamiast usuwać ich rzędy.

Będę bardzo wdzięczny za pomoc, pozdrawiam :)

1 odpowiedź

0 głosów
odpowiedź 17 listopada 2018 przez sefir Dyskutant (8,560 p.)

Tu masz kodzik co zamienia "TTRRRTER" na "TTTER". Dalej kombinuj, jest z górki :D

function countOfTheSameLetters (string, position) {
  var count = 1;
  var letter = string[position];
  for (var i = position + 1;i < string.length; i++) {
    if (string[i] === letter) {
      count++;
    } else return count;
  }
  return count;
}

function letters (string) {
  var unique = '';
  var count;
  var i = 0;
  do {
    count = countOfTheSameLetters(string, i);
    if (count < 3) {
      unique += string[i];
    } else {
      i += count - 1;
    }
    i++;
  } while (i < string.length);

  return unique;
}

 

komentarz 17 listopada 2018 przez Luckyluck87 Użytkownik (660 p.)
Super, dziękuje bardzo za odpowiedź :)

Przeanalizuję kod i będę kombinował dalej - Powinienem sobie poradzić :D

Pozdrawiam!

Podobne pytania

0 głosów
1 odpowiedź 2,636 wizyt
pytanie zadane 8 lipca 2018 w C i C++ przez Kamil(Ten miły) Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 2,728 wizyt
pytanie zadane 22 stycznia 2017 w C i C++ przez spicedagger Użytkownik (530 p.)
0 głosów
2 odpowiedzi 1,818 wizyt
pytanie zadane 4 listopada 2017 w JavaScript przez Wojciech Tuszkiewicz Użytkownik (500 p.)

93,743 zapytań

142,683 odpowiedzi

323,305 komentarzy

63,330 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...