flatten

flatten<T, Q>(@StreamCapable items: Array<Array<T> | Q>): Array<T | Q>

一連のサブ配列 (​[ [1,2,3], [4,5,[6]], [], [null] ]​ など) を 1 つのフラット化した配列 (​[ 1, 2, 3, 4, 5, [6], null ]​ など) に変換します。

サブ配列の最初のレベルのみがフラット化され、空のサブ配列は省略されます。

パラメーター

名前 説明

items

サポートされる任意の型で構成された配列の入力配列。

この例では、数値の配列を 3 つ定義し、それらの 3 つの配列を含むもう 1 つの配列を作成してから、flatten 関数を使用して配列の配列をすべての値を含む 1 つの配列に変換します。

ソース

%dw 2.0
output application/json
var array1 = [1,2,3]
var array2 = [4,5,6]
var array3 = [7,8,9]
var arrayOfArrays = [array1, array2, array3]
---
flatten(arrayOfArrays)

出力

[ 1,2,3,4,5,6,7,8,9 ]

次の例では、オブジェクトのネストされた配列から 1 つの配列を返します。

ソース

%dw 2.0
var myData =
{ user : [
   {
     group : "dev",
     myarray : [
       { name : "Shoki", id : 5678 },
       { name : "Mariano", id : 9123 }
     ]
   },
   {
     group : "test",
     myarray : [
       { name : "Sai", id : 2001 },
       { name : "Peter", id : 2002 }
     ]
   }
 ]
}
output application/json
---
flatten(myData.user.myarray)

出力

[
  {
    "name": "Shoki",
    "id": 5678
  },
  {
    "name": "Mariano",
    "id": 9123
  },
  {
    "name": "Sai",
    "id": 2001
  },
  {
    "name": "Peter",
    "id": 2002
  }
]

flatten(myData.user.myarray)​ を使用するのではなく、​myData.user.myarray​ を使用して ​myarray​ 内のオブジェクトの配列を選択した場合、出力はオブジェクトのネストされた配列になります。

[
  [
    {
      "name": "Shoki",
      "id": 5678
    },
    {
      "name": "Mariano",
      "id": 9123
    }
  ]
]

flatten(@StreamCapable value: Null): Null

flatten​ を ​null​ 値に使用できるようにするヘルパー関数。