CouchDB的Javascript列表缩减器
映射出一个键和值,值是两个数字的列表CouchDB的Javascript列表缩减器,javascript,couchdb,couchapp,Javascript,Couchdb,Couchapp,映射出一个键和值,值是两个数字的列表 key1 [1,2] key1 [4,8] key2 [1,6] key2 [2,0] 我正在写的减速机 key1 [1+4, 2+8] = key1 [5,10] key2 [1+2, 6+0] = key2 [3,6] 我为reducer写了这个脚本 function (key, values) { val1 = 0; val2 = 0; if(values != null) for(val in values) {
key1 [1,2]
key1 [4,8]
key2 [1,6]
key2 [2,0]
我正在写的减速机
key1 [1+4, 2+8] = key1 [5,10]
key2 [1+2, 6+0] = key2 [3,6]
我为reducer写了这个脚本
function (key, values) {
val1 = 0;
val2 = 0;
if(values != null)
for(val in values) {
val1 += parseInt(val[0]);
val2 += parseInt(val[1]);
}
return [val1,val2];
}
这似乎不起作用,我在这里做错了什么吗?用值[val][0]替换val[0]
或者更好:
function (key, values) {
var val1 = 0;
var val2 = 0;
if(values != null) {
for(var i = 0; i < values.length; i++) {
var val = values[i];
val1 += parseInt(val[0]);
val2 += parseInt(val[1]);
}
}
return [val1,val2];
}
在一个数组中为…赋值从来都不是一个好主意,因为它还有许多其他属性。在CouchDB中永远不应该使用全局变量,总有干扰其他属性的风险。我编辑了代码,在每个新变量前面添加了var。编辑正在等待审核。