PreparePlan.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.