previous iteration in foreach

Good afternoon,

I am trying to compare in a foreach loop a data with the previous iteration, but I am not able to access this iteration, is there any way?

I need to sort a list, but if there are two equal values ​​they have the same order,
with the array
{
name:"aaaaa", valor:2
name:"bbbbb", valor:10
name:"ccccc", valor:10
name:"ddddd", valor:10
name:"eeeee", valor:45
}
get as a result
{
name:"aaaaa", pos:1
name:"bbbbb", pos:2
name:"ccccc", pos:2
name:"ddddd", pos:2
name:"eeeee", pos:3
}

I am trying to save the pos outside of the foreach in a local variable, or recover the value saved in pos of the previous item

Thank you very much

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Senior Developer

    This will fulfil your requirement if I understood your query correctly

    a!localVariables(
      local!data: {
        a!map(
          name: "aaaaa",
          valor: 1
        ),
        a!map(
          name: "bbbbb",
          valor: 10
        ),
        a!map(
          name: "ccccc",
          valor: 10
        ),
        a!map(
          name: "ddddd",
          valor: 10
        ),
        a!map(
          name: "eeeee",
          valor: 45
        )
      },
      local!uniqueValors: union(local!data.valor, tointeger({})),
      local!valorIndices: createdictionary(
        local!uniqueValors,
        enumerate(length(local!uniqueValors))+1
      ),
      a!forEach(
        items: local!data,
        expression: a!map(
          name: fv!item.name,
          pos: property(local!valorIndices, tostring(fv!item.valor), null)
        )
      )
    )

Reply
  • 0
    Certified Senior Developer

    This will fulfil your requirement if I understood your query correctly

    a!localVariables(
      local!data: {
        a!map(
          name: "aaaaa",
          valor: 1
        ),
        a!map(
          name: "bbbbb",
          valor: 10
        ),
        a!map(
          name: "ccccc",
          valor: 10
        ),
        a!map(
          name: "ddddd",
          valor: 10
        ),
        a!map(
          name: "eeeee",
          valor: 45
        )
      },
      local!uniqueValors: union(local!data.valor, tointeger({})),
      local!valorIndices: createdictionary(
        local!uniqueValors,
        enumerate(length(local!uniqueValors))+1
      ),
      a!forEach(
        items: local!data,
        expression: a!map(
          name: fv!item.name,
          pos: property(local!valorIndices, tostring(fv!item.valor), null)
        )
      )
    )

Children