请注意,这篇文章已标记为jq
,我根本不想用 javascript 来做到这一点。
我有一个对象,其字段之一是数组。我想从对象的数组中删除与条件匹配的元素,但保留该对象。我环顾四周,只能发现返回的片段just现在恰好有较少项目的数组。
这是一个例子:
{
"foo": "bar",
"events": [
{
"id": 1,
"msg": "starting"
},
{
"id": 2,
"msg": "working on it"
},
{
"id": null,
"msg": "done"
}
]
}
我想返回以下信息:
{
"foo": "bar",
"events": [
{
"id": 1,
"msg": "starting"
},
{
"id": 2,
"msg": "working on it"
}
]
}
注意:以防万一这会影响答案,我真的只对最后一个元素感兴趣。我计划在以下管道阶段构建一个新对象,例如:
jq '$answer | {bar:.foo, event: .events[-1].msg}`
我都尝试过
select(.events[].id != null)
and
del(.events[], select(.id == null)))
没有运气。