代码之家  ›  专栏  ›  技术社区  ›  user2556342

填充数组,最多填充一定数量的值

  •  1
  • user2556342  · 技术社区  · 8 年前

    我想知道这是否可能。 有这样一个物体:

    数据json:

    [
     {"DATE":"September","VALUE":[5,17,8,9]}
    ]
    

    如您所见,数组“VALUE”目前由4个数字组成。(这可能会有所不同)。然而,我希望它总是包含——比如说10个数字。

    因此,数组应填充零。

    结果应该如下所示:

    数据json:

    [
     {"DATE":"September","VALUE":[5,17,8,9,0,0,0,0,0,0]}
    ]
    

    1 回复  |  直到 8 年前
        1
  •  3
  •   peak    8 年前

    如果阵列最初太长(如果需要),可以轻松修改以下内容以截断阵列:

    def expand(n; value): . + [range(length;n) | value];
    
    map(.VALUE |= expand(10;0))
    

    一个衬里

    jq 'map(.VALUE|=.+[range(length;10)|0])' data.json | sponge data.json