11.6 递归合并字段值
下面是某时刻,新冠状病毒世界各地确诊人数的 JSON 数据,要统计世界确诊人数。文件部分数据如下:
[
{Region:"USA",Confirmed:[
{Region:"California",Confirmed:3671902},
{Region:"New York",Confirmed:1139740},
{Region:"Virginia",Confirmed:620801},
{Region:"Florida",Confirmed:2064525},
…
]},
{Region:"Brazil",Confirmed:[…]},
{Region:"India",Confirmed: […]},
{Region:"France",Confirmed: […]}
…
]
有的国家只统计了全国人数,也有的国家统计到了每个州(省),还有统计到每个城市的。在这种情况下不能简单的将字段值循环求和,而要用到递归合并了。使用 A.conj@r() 递归合并序列成员。
脚本:
A | |
---|---|
1 | =json(file(“COVID-19.json”).read()) |
2 | =A1.field@r(“Confirmed”) |
3 | =A2.conj@r().sum() |
A1:导入 JSON 数据文件。
A2:使用函数A.field@r ()递归获取所有确诊字段值。
A3:使用函数 A.conj@r() 递归合并所有确诊人数,再求和。