Meteor .流星中未定义的弹拨返回
尝试从一系列评论中提取一个评分列表,然后对它们进行平均,从而得出一个板块的综合平均评分。当我查看ratings变量的数据输出时,我只得到“undefined undefined”Meteor .流星中未定义的弹拨返回,meteor,Meteor,尝试从一系列评论中提取一个评分列表,然后对它们进行平均,从而得出一个板块的综合平均评分。当我查看ratings变量的数据输出时,我只得到“undefined undefined” 如果这是一个超级新手的问题,很抱歉,但我已经问了好几个小时了,还没弄明白。我解决了这个问题。如上所述,var reviews设置为一个光标,显然。pulk不起作用。通过首先将光标转换为一组对象,我就可以使用.pulk。更新后的代码如下所示: averageRating: function() { var rev
如果这是一个超级新手的问题,很抱歉,但我已经问了好几个小时了,还没弄明白。我解决了这个问题。如上所述,
var reviews
设置为一个光标,显然。pulk不起作用。通过首先将光标转换为一组对象,我就可以使用.pulk。更新后的代码如下所示:
averageRating: function() {
var reviewsCursor = Reviews.find({plateId: this._id});
//Converts cursor to an array of objects
var reviews = reviewsCursor.fetch();
var ratings = _.pluck(reviews, 'rating');
var sum = ratings.reduce(function(pv, cv){return pv + cv;}, 0);
var avg = (sum / ratings.length).toPrecision(2);
return avg;
}
每次计算后都要记录
console.log
,以查看是否正在计算数据。问题不在于计算部分。在我做任何数学运算之前,我已经“未定义”。在上面的代码中,我暂时绕过了数学部分,只是输出了从.pulk收到的内容,即“undefined-undefined(etc)”。您的查询最多只返回一个文档。文档是什么样子的?在调用pluck()
之前,您会得到什么?
averageRating: function() {
var reviewsCursor = Reviews.find({plateId: this._id});
//Converts cursor to an array of objects
var reviews = reviewsCursor.fetch();
var ratings = _.pluck(reviews, 'rating');
var sum = ratings.reduce(function(pv, cv){return pv + cv;}, 0);
var avg = (sum / ratings.length).toPrecision(2);
return avg;
}