zip

zip(Array<T>, Array<R>): Array<Array<T | R>>

2 つの配列からの要素を配列の配列にマージします。

出力配列内の 1 番目のサブ配列には、入力サブ配列の 1 番目のインデックスが含まれます。2 番目のインデックスには入力の 2 番目のインデックスが含まれ、3 番目には 3 番目のインデックスが含まれ、各配列内に同じ番号のインデックスがあれば、以降同様にインデックスが含まれます。

パラメーター

名前 説明

left

関数の左側の配列。

right

関数の右側の配列。

次の例では、​zip​ の左側と右側にある配列を組み合わせます。返された配列の配列の 1 番目のインデックス (​[0,1]​) には、指定された各配列の 1 番目のインデックスが含まれます。出力配列の 2 番目のインデックス (​[1,"b"]​) には、指定された各配列の 2 番目のインデックスが含まれます。

ソース

%dw 2.0
output application/json
---
[0,1] zip ["a","b"]

出力

[ [0,"a"], [1,"b"] ]

次の例では、左側の配列と右側の配列の要素を組み合わせます。同じインデックスの対応要素がある要素のみが配列で返されます。

ソース

%dw 2.0
output application/json
---
{
  "a" : [0, 1, 2, 3] zip ["a", "b", "c", "d"],
  "b" : [0, 1, 2, 3] zip ["a"],
  "c" : [0, 1, 2, 3] zip ["a", "b"],
  "d" : [0, 1, 2] zip ["a", "b", "c", "d"]
}

出力

{
  "a": [
    [0,"a"],
    [1,"b"],
    [2,"c"],
    [3,"d"]
    ],
  "b": [
    [0,"a"]
  ],
  "c": [
    [0,"a"],
    [1,"b"]
  ],
  "d": [
    [0,"a"],
    [1,"b"],
    [2,"c"]
  ]
}

次の例では、3 つ以上の配列を組み合わせます。​list4​ の ​["aA", "bB"]​ からの項目は出力に含まれません。他の入力配列に含まれるインデックスが 2 個のみのためです。

ソース

%dw 2.0
output application/json
var myvar = {
   "list1": ["a", "b"],
   "list2": [1, 2, 3],
   "list3": ["aa", "bb"],
   "list4": [["A", "B", "C"], [11, 12], ["aA", "bB"]]
}
---
((myvar.list1 zip myvar.list2) zip myvar.list3) zip myvar.list4

出力

[
  [
    [ [ "a", 1 ], "aa" ], [ "A", "B", "C" ]
  ],
  [
    [ [ "b", 2 ], "bb" ], [ 11, 12 ]
  ]
]