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() 递归合并所有确诊人数,再求和。