如何在jq中添加索引

Eri*_*ord 2 jq

我想用jq map输入

["a", "b"]
Run Code Online (Sandbox Code Playgroud)

输出

[{name: "a", index: 0}, {name: "b", index: 1}]
Run Code Online (Sandbox Code Playgroud)

我到了

0 as $i | def incr: $i = $i + 1; [.[] | {name:., index:incr}]'
Run Code Online (Sandbox Code Playgroud)

输出:

[
  {
    "name": "a",
    "index": 1
  },
  {
    "name": "b",
    "index": 1
  }
]
Run Code Online (Sandbox Code Playgroud)

但是我想念一些东西。

有任何想法吗?

Jef*_*ado 6

它比您想象的要容易。

to_entries | map({name:.value, index:.key})
Run Code Online (Sandbox Code Playgroud)

to_entries接受一个对象并返回键/值对的数组。对于数组,它可以有效地建立索引/值对。您可以将这些对映射到所需的项目。