You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JSONata中统计符合条件的员工总数(cnti字段求和)

解决方案:统计符合条件的员工总数

1. 修改JSONata表达式实现求和

直接用JSONata的sum()聚合函数结合过滤逻辑,就能算出符合条件的员工总数,替代原来逐个输出cnti值的方式。

假设你的员工排班JSON结构如下:

{
  "employees": [
    {"id": 1, "name": "员工A", "cnti": 1},
    {"id": 2, "name": "员工B", "cnti": 1},
    {"id": 3, "name": "员工C", "cnti": ""}
  ]
}

替换原JSONata代码为:

sum(employees[cnti != ""].cnti)
  • employees[cnti != ""]:先筛选出cnti不为空的员工条目
  • .cnti:提取这些员工的cnti值(即1)
  • sum():对所有提取到的1求和,直接得到符合条件的员工总数

2. 调整HTML输出逻辑

原HTML可能是循环遍历每个cnti并输出,现在只需直接渲染求和后的结果即可:

<!-- 原HTML(输出多个1) -->
<div id="result"></div>
<script>
  const data = {/* 你的员工JSON数据 */};
  const result = jsonata('employees.cnti').evaluate(data);
  document.getElementById('result').innerHTML = result.join(''); // 输出"11"
</script>

<!-- 修改后的HTML(输出总数) -->
<div id="result"></div>
<script>
  const data = {/* 你的员工JSON数据 */};
  const count = jsonata('sum(employees[cnti != ""].cnti)').evaluate(data);
  document.getElementById('result').innerHTML = count; // 输出"2"
</script>

关键说明

  • 如果不符合条件时cnti字段是null而非空字符串,把过滤条件改成cnti != null即可
  • JSONata的sum()会自动忽略null和空值,但显式过滤能让逻辑更清晰,避免意外情况

内容的提问来源于stack exchange,提问作者Zerono

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:03:17