2017-04-18 1 views
0

Ich habe diese Funktion erstellt, die mir 105 zurückgeben sollte; 6.5 und 110; 4.5 statt dessen erhalte ich undefined: undefinedundefined: undefined Kann mir jemand sagen, was ich zu tun habe, dass ich das richtige Ergebnis bekomme? Ich lese etwas asynchron, aber ich bin mir nicht sicher, was ich riskieren muss ?!Undefined Ergebnis in HTML

Hier ist meine Funktion (in Meteor IsClient) ...

var d = 0; 
var finalReturn = ""; 
while(distinctPlayer[d]) { 
    var total = 0; 
    Spieltag.find({SpielerID: distinctPlayer[d]}).map(function (doc) { 
     total += doc.Note; 
    }); 

    var finalName = 0; 
    Spieltag.find({SpielerID: distinctPlayer[d]}).map(function (doc) { 
     finalName = doc.SpielerID; 
    }); 

    finalReturn += finalName[d] +": "+ total[d]; 
    d++; 
} 
return finalReturn; 

Und im HTML, es sieht aus wie dieser

<p> 
    <pre>{{otherHelperFunction}}</pre> 
</p> 
+3

'total' und' finalName' sind keine Arrays. Sie sind einzelne, eigenständige Variablen. – Marie

+0

Ich nehme an, dass Sie '.find()' und '.map()' irrtümlicherweise verwenden. 'find' sollte als erstes Argument einen Callback erhalten, stattdessen senden Sie ein Objekt. 'map' gibt keinen Wert zurück und bildet daher nicht ab. – Andrewmat

Antwort

0

Versuch zu holen() zu verwenden, nachdem find() und vor map()

var d = 0; 
var finalReturn = ""; 
while(distinctPlayer[d]) { 
    var total = 0; 
    Spieltag.find({SpielerID: distinctPlayer[d]}).fetch().map(function (doc) { 
     total += doc.Note; 
    }); 

    var finalName = 0; 
    Spieltag.find({SpielerID: distinctPlayer[d]}).fetch().map(function (doc) { 
     finalName = doc.SpielerID; 
    }); 

    finalReturn += finalName[d] +": "+ total[d]; 
    d++; 
} 
return finalReturn;