dvt-aggregation
简单又实用的聚合函数生成器 createAggregateFunction
,该生成器接受一个指标配置数组,返回这些指标对应的聚合函数。
支持的特性
- 支持以下聚合操作符:
MAX | MIN | SUM | AVG | COUNT
- 支持的普通四则运算(加减乘除与圆括号)
- 支持简单的计算指标
示例
const indicators = code: 'target' name: '目标收入' expression: 'SUM(target)' code: 'income' name: '实际收入' expression: 'SUM(income)' code: 'rate' name: '达成比率' expression: 'income / target' const fn = // 生成的 fn 如下: { /* aggregate function generated by dvt-aggregation@x.y.z 目标收入: target = SUM(target) 实际收入: income = SUM(income) 达成比率: rate = income / target */ let r = {} r'target' = 0 r'income' = 0 for const d of slice r'target' += d'target' || 0 r'income' += d'income' || 0 r'rate' = r'income' / r'target' return r} const result = // result: { target: 2500, income: 2400, rate: 0.96 }