【问题标题】:Populate array up to a certain number of values将数组填充到一定数量的值
【发布时间】:2017-10-15 19:46:26
【问题描述】:

我想知道这是否可能。 有这样一个对象:

data.json:

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

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

因此,该数组应填充零。

结果应该是这样的:

data.json:

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

当然,初始数组可能已经包含十个值的预期计数。那么,什么都不应该改变。

【问题讨论】:

    标签: arrays json jq


    【解决方案1】:

    如果需要,可以轻松修改以下内容以截断最初过长的数组:

    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
    

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 2011-08-18
      • 1970-01-01
      • 2020-06-02
      • 2022-11-13
      • 2020-06-23
      相关资源
      最近更新 更多