2017-07-13 13 views
0

Ich versuche, zwei Parameter in eine Funktion zu übergeben. Ich möchte den Parameter "item" nehmen und durch den Parameter "sum" dividieren, dann mal um 100 und runder um die Zahl die ich bekomme. Die Variable "Prozent", in der das Ergebnis gespeichert wird, besagt jedoch, dass es NaN ist. Irgendwelche Ideen darüber, was das verursachen würde?Variable in Funktion Rückgabe NaN Fehler

function calcPercent(item, sum) 
    { 
     var percent = item/sum; 
     percent = percent * 100; 
     return Math.round(percent); 

    } 

Beim Debuggen den Code in meinem ide, item = Array [3] und sum = 94000

+0

Dies passiert, wenn einer der Operanden von '/' keine Zahl ist. Bitte zeigen Sie die Callsite von 'calcPercent' an, oder drucken Sie zumindest' item' und 'sum' als erste Zeile von' calcPercent' aus, um sicherzustellen, dass beide Zahlen sind. – Will

+0

Beim Debuggen des Codes in meiner IDE, Element = Array [3] und Summe = 94000 – CChristiansen

Antwort

0

Dieser Code sollte item unter der Annahme arbeiten und sum sind eigentlich Zahlen. In der Tat wird es sogar Strings zu Zahlen austeilen, um Ihnen zu helfen. Es wird nicht funktionieren, wenn item oder sum nicht definiert sind, oder wenn beide eine Art von Objekt wie ein Array sind. Sie sollten sicherstellen, dass Sie wissen, was an diese Funktion übergeben wird. Vielleicht hilft eine schnelle console.log(item, sum) in der Funktion herauszufinden, was diese Werte sind.

+0

Beim Debuggen des Codes in meiner IDE, Element = Array [3] und Summe = 94000 – CChristiansen

+0

Also, das ist ein Problem. 'item' ist keine Zahl und JavaScript weiß nicht, was zu tun ist, wenn Sie versuchen, ein Array durch eine ganze Zahl zu teilen. Gibt es in diesem Array einen bestimmten Wert, den Sie stattdessen verwenden müssen? Vielleicht möchten Sie den Prozentsatz jedes Werts im Array finden. In diesem Fall könnten Sie es mit 'forEach' oder' for' durchlaufen und jeden Wert an die Funktion senden. –

+0

Ja, ich muss einen Prozentsatz für jedes Element im Array erhalten, damit eine for-Schleife für mich funktioniert. – CChristiansen