0

I have a given object renameByName like that:

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

and I want to convert that into an object that is supposed to order the fields by an index:

{
  fieldA: 0,
  fieldB: 1,
}

My idea:

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

That would yield:

{
  fieldA: 0,
  fieldB: 0,
}

Full reference code:

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

My question:

Because Jsonnet doesn't have iterators for loops I'm unsure how I could use a counter here?

kentor
  • 16,553
  • 20
  • 86
  • 144

1 Answers1

0

I found a workaround:

  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,
    },
  },
kentor
  • 16,553
  • 20
  • 86
  • 144