给定一个对象数组,我想在数组中注入一个属性及其位置。 例如:
[ { "w" : "Hello" }, { "w" : "World } ]
我想制作:
[ { "w" : "Hello", p: 0 }, { "w" : "World, p:1 } ]
其中p是数组中从零开始的位置。
有没有办法获取元素的索引? 我尝试了这个,但它不起作用:
keys[] as $i | [ .[] | .p= $i ]
我明白了:
[ { "w" : "Hello", p: 0 }, { "w" : "World, p:0 } ]
答案 0 :(得分:1)
你可以这样做:
[ keys[] as $i | .[$i] | .p=$i ]
或者,你可以使用这样的to_entries
使其工作:
[ to_entries[] | (.value.p=.key).value ]
两者都产生:
[
{
"w": "Hello",
"p": 0
},
{
"w": "World",
"p": 1
}
]
答案 1 :(得分:0)
以下是使用reduce
reduce keys[] as $i (.; .[$i].p = $i)