【发布时间】:2021-06-11 15:59:37
【问题描述】:
我有一个对象数组,并且想要过滤 b 属性中的数组,使其仅包含与对象的 a 属性匹配的元素。
[
{
"a": 3,
"b": [
1,
2,
3
]
},
{
"a": 5,
"b": [
3,
5,
4,
3,
5
]
}
]
生产
[
{
"a": 3,
"b": [
3
]
},
{
"a": 5,
"b": [
5,
5
]
}
]
目前,我已经到了
[.[] | (.a as $a | .b |= [.[] | select(. == $a)])]
这行得通,但我想知道是否有更好(更短、更易读)的方法。
【问题讨论】:
-
我会使用
map(...)而不是[.[] | ...]。虽然不确定你所说的 better 是什么意思;怎么样更好? -
@oguzismail 更短或更易读。