FILTER funzione

Nome funzione Descrizione Utilizzo Parametro di input Valore restituito
FILTER Filtra gli elementi dell'array che soddisfano una determinata condizione di filtro.

Tieni presente che una condizione di filtro deve essere valutata come TRUE o FALSE.

Una condizione di filtro include una o più funzioni di trasformazione applicate all'elemento di iterazione dell'array corrente.

FILTER(~objn -> Variable or Value)

dove ~objn indica l'elemento dell'array corrente a cui vuoi applicare le funzioni di trasformazione. Per impostazione predefinita, il valore di n parte da 1.

Una condizione di filtro che restituisce TRUE o FALSE. Un array di elementi che corrispondono alla condizione del filtro.

Esempio 1: filtrare un array di stringhe.

Dati di esempio: $var1$ = { "sara@example.com", "bola@example.com", "222larabrown@gmail.com", "dana@examplepetstore.com", "cloudysanfrancisco@gmail.com"}

Utilizzo: $var1$.FILTER(~obj1-> ~obj1.CONTAINS("@gmail.com"))

Filtra gli elementi stringa che contengono @gmail.com in var1.

Output: {"222larabrown@gmail.com","cloudysanfrancisco@gmail.com"}

Esempio 2: filtrare un array JSON.

Dati di esempio:

  $var1$ = {
  "citynames": [
    {
      "city": "Abbeville",
      "state": "Louisiana"
    },
    {
      "city": "Aberdeen",
      "state": "Maryland"
    },
    {
      "city": "Benicia",
      "state": "California"
    },
    {
      "city": "Chehalis",
      "state": "Washington"
    },
    {
      "city": "Aberdeen",
      "state": "Washington"
    },
    {
      "city": "Aberdeen",
      "state": "Mississippi"
    },
    {
      "city": "Cheektowaga",
      "state": "New York"
    }
  ]
}

Utilizzo: $var1$.citynames.FILTER(~obj1-> ~obj1.GET_PROPERTY("city").EQUALS("Aberdeen"))

Filtra gli elementi che hanno la città di Aberdeen in var1.

Output:

  [{
    "city": "Aberdeen",
    "state": "Maryland"
  },
  {
    "city": "Aberdeen",
    "state": "Washington"
  },
  {
    "city": "Aberdeen",
    "state": "Mississippi"
  }]

Esempio 3: filtrare un array JSON nidificato.

Dati di esempio:

  $var1$ =
{
  "products": [
    {
      "PA": "Integrations",
      "users": [
        {
          "name": "Ariel",
          "role": [
            "editor",
            "approver"
          ]
        },
        {
          "name": "Dana",
          "role": [
            "admin",
            "deployer"
          ]
        },
        {
          "name": "Lee",
          "role": [
            "viewer"
          ]
        }
      ]
    },
    {
      "PA": "Apigee",
      "users": [
        {
          "name": "Mahan",
          "role": [
            "editor",
            "admin",
            "deployer"
          ]
        },
        {
          "name": "Quinn",
          "role": [
            "invoker"
          ]
        }
      ]
    },
    {
      "PA": "Connectors",
      "users": [
        {
          "name": "Kiran",
          "role": [
            "invoker",
            "admin",
            "deployer"
          ]
        },
        {
          "name": "Sasha",
          "role": [
            "admin"
          ]
        }
      ]
    }
  ]
}

Utilizzo: $var1$.products.FOREACH(~obj1-> ~obj1.SET_PROPERTY(~obj1.GET_PROPERTY("users").FILTER(~obj2-> ~obj2.GET_PROPERTY("role").TO_STRING().CONTAINS("admin")), "users"))

Filtra gli elementi che contengono admin in users di var1.

Output:

[
  {
    "PA": "Integrations",
    "users": [
      {
        "name": "Dana",
        "role": [
          "admin",
          "deployer"
        ]
      }
    ]
  },
  {
    "PA": "Apigee",
    "users": [
      {
        "name": "Mahan",
        "role": [
          "editor",
          "admin",
          "deployer"
        ]
      }
    ]
  },
  {
    "PA": "Connectors",
    "users": [
      {
        "name": "Kiran",
        "role": [
          "invoker",
          "admin",
          "deployer"
        ]
      },
      {
        "name": "Sasha",
        "role": [
          "admin"
        ]
      }
    ]
  }
]