【发布时间】:2012-07-26 04:25:37
【问题描述】:
在我的 CouchDB reduce 函数中,我需要将项目列表缩减为唯一的项目。
注意:在这种情况下,有一个列表是可以的,它将是字符串类型的少量项目。
我目前的方法是设置对象的键,然后返回该对象的键
因为代码不能使用_.uniq之类的地方。
我想找到一种比这个更优雅的拼写方式。
function(keys, values, rereduce) {
// values is a Array of Arrays
values = Array.concat.apply(null, values);
var uniq = {};
values.forEach(function(item) { uniq[item] = true; });
return Object.keys(uniq);
}
【问题讨论】:
-
根据你定义的优雅,你可以在github上查找下划线的唯一来源
-
下划线仅用于字符串更昂贵,并且由于需要在一般情况下工作而不太优雅
-
你需要reduce函数吗?如果您只需要唯一值,您可以在请求视图时使用
group=true选项。有关这方面的更多信息,请参阅CouchDB Wiki -
可能重复[获取数组中的所有唯一值(删除重复)stackoverflow.com/questions/1960473/…
标签: javascript arrays couchdb