数据过滤规则:JavaScript 清洗、转换与汇总
过滤规则用于在图表读取数据前进行整理,例如统一数值格式、追加字段或计算汇总。先确认原始数据正确,再处理展示需要的变换。
进入过滤设置
在 SQL、API 或 MQTT 数据源操作中打开「设置过滤规则」。启用规则,编写脚本,运行比较原始与处理结果,再保存。
当前脚本通过返回值提供结果。直接 return 数据即可;只声明一个函数但不调用,不会自动得到预期列表。
示例:统一金额类型
return (Array.isArray(data) ? data : []).map((row) => ({
...row,
sales: Number(String(row.sales ?? "").replace(/,/g, "")) || 0
}));
示例将 sales 转为可用于数值图表的数字。转换前应确认逗号代表千位分隔,而不是业务字段中的其他含义。
示例:按门店汇总
return _.map(_.groupBy(Array.isArray(data) ? data : [], "store"), (rows, store) => ({
store,
sales: _.sumBy(rows, (row) => Number(row.sales) || 0)
}));
可使用提供的 Lodash 变量 _。上述结果为记录数组,适合继续绑定 store 与 sales。若转换后增加了新字段,应同步维护数据源字段列表。
注意结果形态
柱状图、折线图和表格通常使用记录数组;不要无意返回字符串、单个数字或空对象。要展示一个汇总数字,可返回包含一条记录的数组,再绑定其中字段。
脚本出错时,展示链路可能回退原始数据。因此不能把“图表还有内容”当作过滤规则执行成功;应明确比较结果。
界面参考
