如何在Power Automate数组中查找高频项?是否有开箱即用方案?
在Power Automate中查找数组中出现频率最高的元素
Power Automate目前没有开箱即用的原生动作直接实现这个需求,需要通过组合现有动作来完成。以下是针对示例数组 ["Apple", "banana", "mango", "banana"] 的具体实现步骤:
实现步骤
1. 初始化变量
- 创建字符串数组变量
OriginalArray,赋值为目标数组:["Apple", "banana", "mango", "banana"] - 创建对象变量
CountMap,用于存储每个元素的出现次数,初始值设为{}
2. 遍历数组统计元素出现次数
- 添加「应用到每一个」动作,选择
OriginalArray作为输入集合 - 在循环内部:
- 添加「获取对象属性」动作,从
CountMap中读取当前循环项(item())对应的属性值 - 添加「条件」动作,判断获取到的属性值是否为空:
- 如果是(该元素未被统计过):使用「设置变量」动作,给
CountMap添加键值对,键为item(),值设为1 - 如果否:使用「设置变量」动作,将
CountMap中对应键的值更新为获取到的属性值 + 1
- 如果是(该元素未被统计过):使用「设置变量」动作,给
- 添加「获取对象属性」动作,从
执行完这一步后,CountMap 的值会是:{"Apple":1, "banana":2, "mango":1}
3. 筛选出现次数最多的元素
- 初始化两个变量:
MaxCount(整数类型),初始值为0MostFrequentItem(字符串类型),初始值为空字符串
- 添加「应用到每一个」动作,选择
CountMap的键值对集合(可通过「选择」动作先将对象转换为[{"key":"Apple", "value":1}, ...]格式的数组,方便遍历) - 在循环内部添加「条件」动作,判断当前键值对的
value是否大于MaxCount:- 如果是:
- 更新
MaxCount为当前value - 更新
MostFrequentItem为当前key
- 更新
- 如果是:
4. 验证结果
执行流后,MostFrequentItem 的值会是 banana,MaxCount 的值为 2,符合示例预期。
额外说明
- 如果存在多个元素出现次数相同且均为最高(比如数组
["Apple", "banana", "banana", "Apple"]),上述逻辑会返回最后一个遍历到的元素。若需返回所有最高频元素,可将MostFrequentItem改为数组变量,在条件判断时将符合条件的元素添加到数组中。 - Power Automate 字符串区分大小写,
Apple和apple会被视为不同元素。若需忽略大小写统计,可在遍历统计前,先将每个元素转换为小写(或大写)。
内容的提问来源于stack exchange,提问作者Lorren112
相关产品推荐
相关产品推荐

