javascript - 为什么我的大部分结果都是 nan

标签 javascript mongodb mapreduce

我在 mongoDB 中有 Reduse 函数。我想打印每个州城市的 AVG。 我只得到一个正确的结果,其余的将是 nan

map 功能

function map(){
key = {state : this.state};
values = { numberOfCities:1, statePop: this.pop}; 
emit(key, values)}

和reduce函数

function reduce(key , values){
 numberOfCities = 0.0;
 statePop = 0.0;
 avg = 0.0;
for (i in values){
    numberOfCities += values[i].numberOfCities;
    statePop += values[i].statePop;
    avg = statePop/numberOfCities;
}
return  avg}

如果我返回带有 numberOfCities 的 statePop,我将得到正确的数字,但如果我返回操作 statePop/numberOfCities,我将得到它的 nan 值

错误

json文件(这是一行json文件)

{ "_id" : "20002", "city" : "WASHINGTON", "loc" : [ -76.990055, 38.902365 ], "pop" : 56756, "state" : "DC" }

最佳答案

i 是您的值对象的实例,而不是索引。所以不要使用 values[I].property 使用 i.property

关于javascript - 为什么我的大部分结果都是 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42407799/

相关文章:

javascript - 单击时更改 anchor 的颜色?

node.js - Mongoose 中的聚合结果

javascript - REST API 新用户未发布到 MongoDB

javascript - 尽管向下移动滚动条,如何保持 div 的内容始终可见

javascript - 插件不会触发使用 CRM 2016 中的操作创建的自定义消息

javascript - 使用 JQuery 获取 html 文档并将其解析为 DOM 树

python - 无法导入 pymongo ubuntu

configuration - Hadoop节点&核心分配策略

Cassandra 上的 MapReduce

hadoop - 为什么 MapReduce 作业没有完全加载附加文件?