2017-06-14 2 views
0

Ich arbeite an einem Freecodecamp Problem und eine Komponente nimmt den Wert von 5 Karten, vergleicht es mit einem Wert, den Sie zuweisen, und präsentiert dann die aktuelle Anzahl basiert auf diesen Karten.Erhöhen/verringern zählen in Javascript basierend auf Deck der Kartenwerte und geben genaue Anzahl zurück

Also zum Beispiel;

Karten mit den Nummern 2,3,4,5 und 6 sollten die Zählung um 1 erhöhen. Karten mit den Nummern 7,8 und 9 sollten nichts tun. Karten 10, J, Q, K, A sollten die Zählung um 1 verringern.

Wenn ich also 5 Kartenwerte gebe, sollte sie diese addieren und die Zählung basierend auf diesen Kartenwerten liefern.

Hier ist mein Code (Ich weiß, es ist schlampig, aber versuchen, es besser zu bekommen);

var count = 0; 

function cc(card) { 
    // Only change code below this line 
    switch (card) { 
    case ("A"): 
     --count; } 
    switch (card) { 
    case ("2"): 
     ++count; } 
    switch (card) { 
    case ("3"): 
     ++count; } 
    switch (card) { 
    case ("4"): 
     ++count; } 
    switch (card) { 
    case ("5"): 
     ++count; } 
    switch (card) { 
    case ("6"): 
     ++count; } 
    switch (card) { 
    case ("7"): 
     } 
    switch (card) { 
    case ("8"): 
     } 
    switch (card) { 
    case ("9"): 
     } 
    switch (card) { 
    case ("10"): 
     --count; } 
    switch (card) { 
    case ("J"): 
     --count; } 
    switch (card) { 
    case ("Q"): 
     --count; } 
    switch (card) { 
    case ("K"): 
     --count; } 

return count; 
    // Only change code above this line 
} 

// Add/remove calls to test your function. 
// Note: Only the last will display 
cc(2); cc(3); cc(7); cc('K'); cc('A'); 

Jetzt habe ich versucht, Return-Anzahl; return ++ zählen; und zurück --count; die mir alle unterschiedliche Werte geben. Ich denke, ich verweise vielleicht nicht auf die Werte von cc am unteren Rand, um eine Zählung auf der Grundlage der korrekten Werte zu erhalten. Ich denke, ich kann nur Blind-Zählungen für die ganze Reihe von Karten ausgeben.

Jede Hilfe wird sehr geschätzt. Danke im Voraus.

Antwort

1

Etwas wie folgt aus:

var count = 0; 

function cc(card) {//or, with ES6: cc = (card) => { (no 'function' keyword required) 
switch (card) { 
    case ("A")://all of these 'fall through' until they hit break...be careful with this, and comment it in your code 
    case ("10"): 
    case ("J"): 
    case ("Q"): 
    case ("K"): 
     count -= 1;//or, count = count - 1 
     break;//break sends you out of the switch statement 
    case ("2")://same here 
    case ("3"): 
    case ("4"): 
    case ("5"): 
    case ("6"): 
     count += 1; 
     break; 
    //no need to do anything with 7, 8, 9 
} 
    return count; 
} 

Sie können auch eine „default“ für das Ende für den Fall, fügen Sie einen anderen Wert als die behandelten diejenigen gesendet wird, aber in diesem Fall alles, was Sie würden würde tun count = count, was nicht notwendig ist. Viel Glück!

Verwandte Themen