
ModifyPlan.prototype.reduce( functionref as String, [seed as String] ) as IteratePlan
This method applies a function or the builtin reducer to each row returned
by the plan to produce a single result as with the reduce() method of
JavaScript Array.
The signature of the reducer must be function(previous, row),
where previous is the seed on the first request and the return from the
previous call on subsequent request and row is the current row.
The implementation of a PreparePlan.prototype.reduce method
can call prototype.map
methods to chain map calls with reduce calls.
| Parameters | |
|---|---|
| functionref | The function to be applied. |
| seed | The value returned by the previous request. |
reduce is a method of the following classes:
const op = require('/MarkLogic/optic');
const employees = op.fromView("main", "employees");
function fibReducer(previous, result) {
const i = Array.isArray(previous) ? previous.length : 0;
result.i = i;
switch(i) {
case 0:
result.fib = 0;
break;
case 1:
result.fib = 1;
break;
default:
result.fib = previous[i - 2].fib + previous[i - 1].fib;
break;
}
if (i === 0) {
previous = [result];
} else {
previous.push(result);
}
return previous;
}
employees.orderBy('EmployeeID')
.reduce(fibReducer)
.result();
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.