使用迭代器进行对象理解

问题描述

我有一个像这样的给定对象 renameByName

{
  fieldA: 'foo',fieldB: 'bar'
}

并且我想将其转换为一个对象,该对象应该按索引对字段进行排序:

{
  fieldA: 0,fieldB: 1,}

我的想法:

      {
        [key]: 0,for key in std.objectFields(renameByName)
      }

那会产生:

{
  fieldA: 0,fieldB: 0,}

完整参考代码

  organizeTransformation(renameByName):: {
    id: "organize",options: {
      excludeByName: {},indexByName: {
        [key]: 0,for key in std.objectFields(renameByName)
      },renameByName: renameByName,},

我的问题:

因为 Jsonnet 没有用于循环的迭代器,所以我不确定如何在这里使用计数器?

解决方法

我找到了一个解决方法:

  organizeTransformation(renameByName):: {
    local keys = std.objectFields(renameByName),id: "organize",options: {
      excludeByName: {},indexByName: {
        [keys[i]]: i,for i in std.range(0,std.length(keys) - 1)
      },renameByName: renameByName,},