今天我的地图函数开始报告断言失败 13076 'recursive toObject' 代码。它昨天工作得很好。
这是我的地图功能:
function () {
for(i=0; i<this.values.length; i++) {
emit(this.values[i].id, {
'id': this.values[i].id,
'start_date': this.values[i].start_date,
'end_date': this.values[i].end_date,
'hash': this.values[i].hash,
'url': this.values[i].url});
}
}
我尝试用 forEach 函数替换 for 循环,但结果是一样的。
具有范围变量限制映射函数到单个发射的有趣函数工作得很好:
function () {
for(i=0; i<this.values.length; i++) {
if(this.values[i].id == myId) {
emit(this.values[i].id, {
'id': this.values[i].id,
'start_date': this.values[i].start_date,
'end_date': this.values[i].end_date,
'hash': this.values[i].hash,
'url': this.values[i].url});
}
}
}
当然,我可以直接在代码中执行这个映射,但是当我真的需要使用 MapReduce 时,我不想再遇到这个错误。