2017-08-20 1 views
0

Ich brauche wirklich Hilfe mit diesem kleinen Problem, ich muss die erste Person nach der höchsten Punktzahl Rang.wie rangiere ich den ersten Platz

 //variables where the total value will go for each person 
      var musT = 0; 
      var zikT = 0; 
      var hamT = 0; 

    // if the spacebar is pressed 
    document.body.onkeyup = function(e){ 
     if(e.keyCode == 32){ 

      //generate random integers between 1 and 12 
      var person_0 = Math.floor(Math.random() * 12 + 1);  
      var person_1= Math.floor(Math.random() * 12 + 1);  
      var person_2 = Math.floor(Math.random() * 12 + 1); 

      // add total number of pushups 
      musT += person_0; 
      zikT += person_1; 
      hamT += person_2; 

      //displaying the total pushups 
      $("#musT .box").html(musT); 
      $("#zikT .box").html(zikT); 
      $("#hamT .box").html(hamT); 

      } 

Ich möchte die höchste Zahl in einem besseren Weg Rang

  //ranking the top person 

      if(musT > zikT && hamT){ 
       $("#first").html("Musa: " + musT); 
      } if(zikT > musT && hamT){ 
       $("#first").html("Zikria: " + zikT); 

      } if(hamT > musT && zikT){ 
       $("#first").html("Hamza: " + hamT); 

    } 
} 
+0

Was sind Musa, Zikria und Hamza? Wo benutzt du person_0, person_1 und person_2? – derloopkat

Antwort

0

Dies funktioniert nicht so, wie Sie es geschrieben

if(musT > zikT && hamT){ 
    $("#first").html("Musa: " + musT); 
} if(zikT > musT && hamT){ 
    $("#first").html("Zikria: " + zikT); 
} if(hamT > musT && zikT){ 
    $("#first").html("Hamza: " + hamT); 

schreiben es so :

if(musT > zikT && musT > hamT){ 
    $("#first").html("Musa: " + musT); 
} else if(zikT > musT && zikT > hamT){ 
    $("#first").html("Zikria: " + zikT); 
} else if(hamT > musT && hamT > zikT){ 
    $("#first").html("Hamza: " + hamT); 

Dies ist auch eine schlechte Möglichkeit, es zu tun. Anstatt, wenn sonst noch Bedingung zu verwenden, versuchen Sie, es in einem Array zu speichern und das Maximum von diesem Array zu erhalten.

0

In Javascript konnten Sie nur zwei Werte a > b vergleichen. Wenn Sie mehr als einen Wert vergleichen möchten, sollten Sie es wie a > b && a > c tun. Auch wenn Sie kompliziert verwenden, wenn-Anweisungen, die Sie es tun sollten wie

if(statement){ 
    //something 
} else if (other thing..){ 
    // and so 
} else if (statement3){ 
    // and so 
} else { 
    // this is the last case 
} 

Sie können so viele wie Sie if-else-Anweisungen werden soll.

0

Sie sind so nah! Das einzige Problem ist mit Ihren if Bedingungen. Mit Ihrer Logik musT > zikT && hamT überprüfen Sie im Wesentlichen nur, dass must größer als zikT ist, während hamT einfach existiert.

Das ist, weil die && (AND) alles auf beiden Seiten davon hält ein separater Zustand zu sein. Der obige Code entspricht (musT > zikT) && (hamT) mit Klammern.

In diesem Sinne ist es oft einfacher zu folgen, wenn Sie selbst die Klammern manuell hinzufügen, wie im folgenden Arbeitsbeispiel. Es ist auch wichtig, else if Anweisungen zu verwenden, so dass Sie nicht versehentlich mehr als eine Ihrer Bedingungen auslösen.

Vergessen Sie nicht, das ist es auch möglich, dass alle Zahlen die gleiche sind. Sie benötigen auch eine else Bedingung, um dieses mögliche Ergebnis abzudecken.

var person_1 = Math.floor(Math.random() * 12 + 1); 
 
var person_2 = Math.floor(Math.random() * 12 + 1); 
 
var person_3 = Math.floor(Math.random() * 12 + 1); 
 

 
if ((person_1 > person_2) && (person_1 > person_3)) { 
 
    console.log("Person 1 is highest"); 
 
} 
 
else if ((person_2 > person_1) && (person_2 > person_1)) { 
 
    console.log("Person 2 is highest"); 
 
} 
 
else if ((person_3 > person_1) && (person_3 > person_2)) { 
 
    console.log("Person 3 is highest"); 
 
} 
 
else { 
 
    console.log("They're all the same!"); 
 
}

hoffe, das hilft! :)

0

Sie können sort und Ihre anfänglichen Variablen, die als Objekte deklariert sind, hier ein wenig helfen.

// your global variables modified to be an array of objects 

    var people = [ 
    {name: "Musa", count: 0}, 
    {name: "Zikria", count: 0}, 
    {name: "Hamza", count: 0} 
] 

// after you are done counting, sort the object 

var sortedPeople = people.sort((a, b) => b.count > a.count)) 

// then just take the top person and append them in your div, no checks 

$("#first").html(`${sortedPeople[0].name}: ${sortedPeople[0].count}`) 


} 

Stellen Sie sicher, dass Sie Ihren Zähler ändern, um diese neue Struktur zu berücksichtigen.

Verwandte Themen