面试题答案
一键面试实现步骤
- Map函数设计:
- 输入:CouchDB中的文档数据。
- 功能:提取文档中的类别字段和销量字段,并将类别作为键,销量作为值输出。
- Reduce函数设计:
- 输入:Map函数输出的键值对,其中键为类别,值为销量。
- 功能:对相同类别的销量进行累加,得到每个类别下的总销量。
关键代码
- Map函数:
function (doc) {
if (doc.category && doc.sales) {
emit(doc.category, doc.sales);
}
}
- Reduce函数:
function (keys, values, rereduce) {
return sum(values);
}
这里假设CouchDB支持内置的sum
函数用于对数值数组求和。如果不支持,可自行实现sum
函数,例如:
function sum(arr) {
return arr.reduce(function (acc, val) {
return acc + val;
}, 0);
}