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

Switch w pętli coś nie działa

VPS Starter Arubacloud
0 głosów
341 wizyt
pytanie zadane 7 listopada 2017 w JavaScript przez revizor451 Obywatel (1,930 p.)
let strMsg = 'ID=55; HEALTH=100; HEALTH=100; CRIT=true; +DMG=500; -DMG=500',
    pa = strMsg.split(';'),
    Log1 = [];

for(var a in pa) {
    let _xd = pa[a].split('=');
    Log1.push(_xd);
}


 
    for(var a in Log1) {
        console.log(Log1[a][0]);
       switch( Log1[a][0] )  {
           case 'CRIT': {
               // Do somethin'
               alert('asdasd');
           }
           break;

           case 'HEALTH': {
               // Tutaj sobie np chce pobrać wartosc health 
              alert('XXXXX');
           }
           break;

           case 'CRIT': {
            // Tutaj sobie np chce pobrać wartosc health 
           alert('XXXCRITXX');
        }
        break;
       }   
    }

 

Dlaczego switch coś nie chce wartości przyjmować? Co tutaj jest zle?

1 odpowiedź

0 głosów
odpowiedź 7 listopada 2017 przez shotokan Nałogowiec (39,660 p.)
wybrane 7 listopada 2017 przez revizor451
 
Najlepsza
Masz dwa razy wpisane CRIT w switchu, a powinno być ID
komentarz 7 listopada 2017 przez revizor451 Obywatel (1,930 p.)
Ta, ale teraz zwraca tylko ID, a reszty alerótw nie, czemu?
1
komentarz 7 listopada 2017 przez edek Nowicjusz (230 p.)
No i { } nie są potrzebne po case...
komentarz 7 listopada 2017 przez shotokan Nałogowiec (39,660 p.)
Bo z natury taka jest instrukcja switch, że wykonuje jakąś czynność w zależności od warunku. W Twoim przypadku wykona pierwszą, bo warunek jest spełniony i wychodzi z instrukcji przez słowo break (następne się już nie wykonają).
Jeśli chcesz, aby się wykonały wszystkie to albo zrezygnuj z break (raczej nie zalecane), albo po prostu napisz inną instrukcję.
komentarz 7 listopada 2017 przez revizor451 Obywatel (1,930 p.)
A ten kod jest podobny, a jakoś breaki ma..

 

http://dev.margonem.pl/js/battle.js?1509955995

 

Funkcja battleMsg() ;P
komentarz 7 listopada 2017 przez shotokan Nałogowiec (39,660 p.)

Podobny, ale nie taki sam, zresztą tam też wykonuje się tylko jedna opcja, w zależności, czy wygrasz (winner), czy przegrasz (loser) itp.
Poczytaj sobie o działaniu switch:
https://developer.mozilla.org/pl/docs/Web/JavaScript/Referencje/Polecenia/switch

komentarz 7 listopada 2017 przez revizor451 Obywatel (1,930 p.)
Dobra dzięki, łap plusa

Podobne pytania

0 głosów
1 odpowiedź 656 wizyt
pytanie zadane 7 stycznia 2017 w C i C++ przez pokrywa1 Użytkownik (990 p.)
0 głosów
2 odpowiedzi 558 wizyt
pytanie zadane 24 stycznia 2017 w C i C++ przez Śwież4k Bywalec (2,570 p.)
0 głosów
2 odpowiedzi 135 wizyt
pytanie zadane 10 stycznia 2016 w C i C++ przez sapala94 Początkujący (320 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...