Power Query 基础:List.Transform

官方说明:

通过将转换函数 transform 应用到列表 list 来返回值的新列表。

List.Transform( list as list, transform as function) as list
--#List.Transform(列表,转换处理)
--#列表中的数据类型:value,list,record,table,function

基础用法

列表中数据类型为value

list2= List.Transform([list],each 10),             
--#//把原来的list每一个元素都转换成10
list3= List.Transform([list],each _+10),            
--#//将原list每一个元素+10
list4= List.Transform([list],(x)=>x+10),           
--#//同上

在这里插入图片描述

列表中数据类型为List

List.Transform({{3,5,6,10},{2,5,7,6},{1,10,12}},each List.Sum(_))
--# 对列表中的每个list进行求和

在这里插入图片描述

{3,5,6,10},{2,5,7,6},{1,10,12}
--# 构建有List组成的列表

在这里插入图片描述

列表中数据类型为function

List.Transform({List.Max,List.Min},each _({8,5,36}))
--#列表{8,5,36}中的最大值,最小值

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用循环遍历来实现这个转换过程,具体步骤如下: 1. 创建一个新的空数组 result 用于存储最终结果; 2. 使用数组的 forEach 方法遍历 time 数组,对于每个时间,都创建一个空对象 obj; 3. 然后再使用数组的 forEach 方法遍历 arr 数组,对于每个设备,都在 obj 中添加一个属性,属性名为设备名称,属性值先设置为空字符串; 4. 接下来再遍历 arr_1 数组,对于每个设备,找到对应的时间和数据,将数据中的 power 属性值赋值给 obj 中对应设备的属性值; 5. 最后将 obj 添加到 result 数组中; 6. 返回 result 数组即可。 代码示例如下: ```javascript let result = []; time.forEach(timeVal => { let obj = { time: timeVal }; arr.forEach(device => { obj[device] = ""; }); arr_1.forEach(data => { if (data.key === device) { let mdData = data.mdData; mdData.forEach(item => { if (item.power !== undefined && item.power !== "") { if (timeVal === "2023-05-30 " + item.time) { obj[device] = item.power; } } }); } }); result.push(obj); }); console.log(result); ``` 输出结果如下: ```javascript [ { time: '2023-05-30 17', power_lift: '417.48', power_all: '117.48', power_dianti: '217.48', power_lighting: '317.48' }, { time: '2023-05-30 18', power_lift: '417.5', power_all: '117.5', power_dianti: '217.5', power_lighting: '317.5' }, { time: '2023-05-30 19', power_lift: '417.68', power_all: '1417.68', power_dianti: '2417.68', power_lighting: '3417.68' }, { time: '2023-05-30 20', power_lift: '417.88', power_all: '1417.88', power_dianti: '2417.88', power_lighting: '3417.88' } ] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值