执行 grouBy 后需要将相似客户添加到数组中
Need to add similar customer into array after performing grouBy
我正在从 salesforce 获取客户联系人,这些联系人作为对象数组出现,如下所示
[
{
"customerID": 1,
"customerName": "Jonhn1"
},
{
"customerID": 1,
"customerName": "Jonhn2"
},
{
"customerID": 1,
"customerName": "Jonhn3"
},
{
"customerID": 1,
"customerName": "Jonhn4"
},
{
"customerID": 1,
"customerName": "Jonhn5"
},
{
"customerID": 2,
"customerName": "Jonhn6"
},
{
"customerID": 2,
"customerName": "Jonhn7"
},
{
"customerID": 2,
"customerName": "Jonhn8"
},
{
"customerID": 3,
"customerName": "Jonhn9"
},
{
"customerID": 3,
"customerName": "Jonhn10"
},
{
"customerID": 3,
"customerName": "Jonhn11"
},
{
"customerID": 4,
"customerName": "Jonhn12"
},
{
"customerID": 4,
"customerName": "Jonhn13"
},
{
"customerID": 5,
"customerName": "Jonhn14"
},
{
"customerID": 5,
"customerName": "Jonhn15"
},
{
"customerID": 5,
"customerName": "Jonhn16"
},
{
"customerID": 6,
"customerName": "Jonhn17"
},
{
"customerID": 7,
"customerName": "Jonhn17"
}
]
我需要输出为数组的数组,每个子数组应包含最多三个不同客户的所有客户详细信息。
需要的输出:
[
[
{
"customerID": 1,
"customerName": "Jonhn1"
},
{
"customerID": 1,
"customerName": "Jonhn2"
},
{
"customerID": 1,
"customerName": "Jonhn3"
},
{
"customerID": 1,
"customerName": "Jonhn4"
},
{
"customerID": 1,
"customerName": "Jonhn5"
},
{
"customerID": 2,
"customerName": "Jonhn6"
},
{
"customerID": 2,
"customerName": "Jonhn7"
},
{
"customerID": 2,
"customerName": "Jonhn8"
},
{
"customerID": 3,
"customerName": "Jonhn9"
},
{
"customerID": 3,
"customerName": "Jonhn10"
},
{
"customerID": 3,
"customerName": "Jonhn11"
}
],
[
{
"customerID": 4,
"customerName": "Jonhn12"
},
{
"customerID": 4,
"customerName": "Jonhn13"
},
{
"customerID": 5,
"customerName": "Jonhn14"
},
{
"customerID": 5,
"customerName": "Jonhn15"
},
{
"customerID": 5,
"customerName": "Jonhn16"
},
{
"customerID": 6,
"customerName": "Jonhn17"
}
],
[
{
"customerID": 7,
"customerName": "Jonhn18"
}
]
]
需要将这个数组的数组发送到parallel for each进行并行处理。
GroupBy
根据customerID分组。
pluck
用于将以数字为键的对象转换为数组。
divideBy 3
用于分隔成数字组,例如 [[[1],[2],[3]],[[4],[5],[6]],[[7] ]]
map
用于遍历嵌套数组[对象数组]
flatten
用于将嵌套数组 [[[]]] 转换为单个数组 [[]]
%dw 2.0
output application/json
import * from dw::core::Arrays
---
payload groupBy $.customerID pluck $ divideBy 3 map((flatten($)))
输出
[
[
{
"customerID": 1,
"customerName": "Jonhn1"
},
{
"customerID": 1,
"customerName": "Jonhn2"
},
{
"customerID": 1,
"customerName": "Jonhn3"
},
{
"customerID": 1,
"customerName": "Jonhn4"
},
{
"customerID": 1,
"customerName": "Jonhn5"
},
{
"customerID": 2,
"customerName": "Jonhn6"
},
{
"customerID": 2,
"customerName": "Jonhn7"
},
{
"customerID": 2,
"customerName": "Jonhn8"
},
{
"customerID": 3,
"customerName": "Jonhn9"
},
{
"customerID": 3,
"customerName": "Jonhn10"
},
{
"customerID": 3,
"customerName": "Jonhn11"
}
],
[
{
"customerID": 4,
"customerName": "Jonhn12"
},
{
"customerID": 4,
"customerName": "Jonhn13"
},
{
"customerID": 5,
"customerName": "Jonhn14"
},
{
"customerID": 5,
"customerName": "Jonhn15"
},
{
"customerID": 5,
"customerName": "Jonhn16"
},
{
"customerID": 6,
"customerName": "Jonhn17"
}
],
[
{
"customerID": 7,
"customerName": "Jonhn17"
}
]
]
我正在从 salesforce 获取客户联系人,这些联系人作为对象数组出现,如下所示
[
{
"customerID": 1,
"customerName": "Jonhn1"
},
{
"customerID": 1,
"customerName": "Jonhn2"
},
{
"customerID": 1,
"customerName": "Jonhn3"
},
{
"customerID": 1,
"customerName": "Jonhn4"
},
{
"customerID": 1,
"customerName": "Jonhn5"
},
{
"customerID": 2,
"customerName": "Jonhn6"
},
{
"customerID": 2,
"customerName": "Jonhn7"
},
{
"customerID": 2,
"customerName": "Jonhn8"
},
{
"customerID": 3,
"customerName": "Jonhn9"
},
{
"customerID": 3,
"customerName": "Jonhn10"
},
{
"customerID": 3,
"customerName": "Jonhn11"
},
{
"customerID": 4,
"customerName": "Jonhn12"
},
{
"customerID": 4,
"customerName": "Jonhn13"
},
{
"customerID": 5,
"customerName": "Jonhn14"
},
{
"customerID": 5,
"customerName": "Jonhn15"
},
{
"customerID": 5,
"customerName": "Jonhn16"
},
{
"customerID": 6,
"customerName": "Jonhn17"
},
{
"customerID": 7,
"customerName": "Jonhn17"
}
]
我需要输出为数组的数组,每个子数组应包含最多三个不同客户的所有客户详细信息。
需要的输出:
[
[
{
"customerID": 1,
"customerName": "Jonhn1"
},
{
"customerID": 1,
"customerName": "Jonhn2"
},
{
"customerID": 1,
"customerName": "Jonhn3"
},
{
"customerID": 1,
"customerName": "Jonhn4"
},
{
"customerID": 1,
"customerName": "Jonhn5"
},
{
"customerID": 2,
"customerName": "Jonhn6"
},
{
"customerID": 2,
"customerName": "Jonhn7"
},
{
"customerID": 2,
"customerName": "Jonhn8"
},
{
"customerID": 3,
"customerName": "Jonhn9"
},
{
"customerID": 3,
"customerName": "Jonhn10"
},
{
"customerID": 3,
"customerName": "Jonhn11"
}
],
[
{
"customerID": 4,
"customerName": "Jonhn12"
},
{
"customerID": 4,
"customerName": "Jonhn13"
},
{
"customerID": 5,
"customerName": "Jonhn14"
},
{
"customerID": 5,
"customerName": "Jonhn15"
},
{
"customerID": 5,
"customerName": "Jonhn16"
},
{
"customerID": 6,
"customerName": "Jonhn17"
}
],
[
{
"customerID": 7,
"customerName": "Jonhn18"
}
]
]
需要将这个数组的数组发送到parallel for each进行并行处理。
GroupBy
根据customerID分组。
pluck
用于将以数字为键的对象转换为数组。
divideBy 3
用于分隔成数字组,例如 [[[1],[2],[3]],[[4],[5],[6]],[[7] ]]
map
用于遍历嵌套数组[对象数组]
flatten
用于将嵌套数组 [[[]]] 转换为单个数组 [[]]
%dw 2.0
output application/json
import * from dw::core::Arrays
---
payload groupBy $.customerID pluck $ divideBy 3 map((flatten($)))
输出
[
[
{
"customerID": 1,
"customerName": "Jonhn1"
},
{
"customerID": 1,
"customerName": "Jonhn2"
},
{
"customerID": 1,
"customerName": "Jonhn3"
},
{
"customerID": 1,
"customerName": "Jonhn4"
},
{
"customerID": 1,
"customerName": "Jonhn5"
},
{
"customerID": 2,
"customerName": "Jonhn6"
},
{
"customerID": 2,
"customerName": "Jonhn7"
},
{
"customerID": 2,
"customerName": "Jonhn8"
},
{
"customerID": 3,
"customerName": "Jonhn9"
},
{
"customerID": 3,
"customerName": "Jonhn10"
},
{
"customerID": 3,
"customerName": "Jonhn11"
}
],
[
{
"customerID": 4,
"customerName": "Jonhn12"
},
{
"customerID": 4,
"customerName": "Jonhn13"
},
{
"customerID": 5,
"customerName": "Jonhn14"
},
{
"customerID": 5,
"customerName": "Jonhn15"
},
{
"customerID": 5,
"customerName": "Jonhn16"
},
{
"customerID": 6,
"customerName": "Jonhn17"
}
],
[
{
"customerID": 7,
"customerName": "Jonhn17"
}
]
]