Обратите внимание, что этот пост помечен jq
, я вообще не пытаюсь сделать это с помощью javascript.
У меня есть объект, массив которого является одним из егополя.Я хотел бы удалить элементы из массива объекта, которые соответствуют критериям, но оставить объект вокруг.Я посмотрел вокруг и смог найти только фрагменты, возвращающие просто массив, в котором сейчас меньше элементов.
Вот пример:
{
"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)
и
del(.events[], select(.id == null)))
без удачи.