用于CouchDB的Javascript List reducer

时间:2011-10-06 20:57:35

标签: 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) {
        val1 += parseInt(val[0]);

        val2 += parseInt(val[1]);
}

return [val1,val2];
}

这似乎不起作用,我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

val[0]替换为values[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];
}

在一个数组中,因为它有许多其他属性,这绝不是一个好主意。