如何使用表达式来减少对象数组
How can I use expressions to reduce array of objects
我正在创建一个流程,该流程在触发器激活时向用户发送提示。
用户选择一个响应,然后流在适当的通道中发送一条消息。提示项来自列表频道操作。我可以使用 body('ListChannels')?['value]
来解析响应。响应是一个数组,每个对象看起来像:
{
"id":"",
"displayName":"General",
"description":"Used to test in-development features",
"email":"",
"webUrl":""
}
我想 reduce
每个对象仅指向 displayName
键,并将结果用作下一个操作的输入,这是该操作可接受的输入:
["General", "Channel2", "Channel3"]
有没有一种方法可以使用提供的 expressions/actions 将其转换为电力自动化?我还需要使用响应来查找相应的数组条目 "id" 以向该频道发送消息。
一种可能性是使用循环和控制语句来执行 'reduce' 和 'lookup' 操作:
For reduce: Initialize variable(s) (array) first and push the lookup value to the array(s):
由于下一步操作的输入需要用户可读的选项,我们必须使用频道名称。
For lookup: Loop through the original object array and compare each object channel name to your query value:
用户响应存储在 selectedResponse
中。我们可以遍历原始列表通道响应中的每个项目,并将其与每个对象通道名称进行比较。如果有比赛。我们可以使用当前项目 id
作为 "Post your own adaptive card" 操作的参数。
Result:
我正在创建一个流程,该流程在触发器激活时向用户发送提示。
用户选择一个响应,然后流在适当的通道中发送一条消息。提示项来自列表频道操作。我可以使用 body('ListChannels')?['value]
来解析响应。响应是一个数组,每个对象看起来像:
{
"id":"",
"displayName":"General",
"description":"Used to test in-development features",
"email":"",
"webUrl":""
}
我想 reduce
每个对象仅指向 displayName
键,并将结果用作下一个操作的输入,这是该操作可接受的输入:
["General", "Channel2", "Channel3"]
有没有一种方法可以使用提供的 expressions/actions 将其转换为电力自动化?我还需要使用响应来查找相应的数组条目 "id" 以向该频道发送消息。
一种可能性是使用循环和控制语句来执行 'reduce' 和 'lookup' 操作:
For reduce: Initialize variable(s) (array) first and push the lookup value to the array(s):
For lookup: Loop through the original object array and compare each object channel name to your query value:
用户响应存储在 selectedResponse
中。我们可以遍历原始列表通道响应中的每个项目,并将其与每个对象通道名称进行比较。如果有比赛。我们可以使用当前项目 id
作为 "Post your own adaptive card" 操作的参数。
Result: