WPS的宏中这一句代码知识点有亿点点多!

职场   2024-05-20 01:18   江苏  
最近我们PowerQuery专题系列习题中,有这么一个小问题,虽然是PQ习题,但是还是被大佬们用WPS的JSA刷一波!


01 | 参考解法

下面我们就来分享代码中涉及的一些知识点!其中有一句核心(圈起来),来源铭佬 !想要看懂不容易,其中涉及的基础知识真不少!


02 | 知识要点

1、数组是特殊的对象。

除了默认的0开始索引,还可以自定义索引,基本同对象,本案例中,使用的就是冒号前面的字段名称作为key!对应的值是索引,本质来说只是把数组看做对象,添加了一组属性!


2、push是有返回值的

我们在JSA系列教程中,也是说明,但是确实很少人注意到,一般都只是知道push从尾巴添加元素,其实他有返回值,返回的是数组的length,也就是元素个数,案例中-1,就是对应的元素索引!

▼ JSA系列教程节选


学习圈第六期开启,再不加入没机会了!>


3、空值赋值运算符

??= 当??=左边的的值为undefined或者null的时候,才会将右侧变量的值赋值给左侧变量.其他所有值都不会进行赋值

案例中,对应的key如果不存在就会返回 undefined ,此时就会把push的结果,也就是数组长度-1 也就是索引赋值给对应的值

4、数组的length

本案例中相当于把标题和索引互相添加到了数组中,也可以理解为互为索引!但是当我们使用字符串作为索引,其实就相当于添加属性,并不会影响数组的length,所以案例中虽然看上去元素很多,但是字符串索引并不会影响length,这也是能得到正确结果的一个要点!根据length写入结果,后面的数值部分被忽略!



JSA中调试看的并不直观,这个时候,我们可以在浏览器或者这个IDE写一个观察一下就明白了!

5、数组赋值有返回值

案例中如果s[0][k] 对应的k索引已经存在就会取出,由于不存在我们赋值的是对应的索引,所以直接得到索引,如果不存在,undefined 就会把 s[0].push(k)-1的结果赋值给他,这个部分的结果是length-1,也就是索引,赋值后有返回值,所以得到的也是索引!


OK!关于以上代码的 其中一句我们就给大家解析到这里,本人也是JSA初学新手,如有错漏,还请多多包涵!小编正在努力中……


最后说一句,虽然简洁,但是也失去了可读性~日常玩玩尚且可以,当然你的基础比较扎实也是OK的!

Excel办公实战
Excel函数、VBA、PBI等全系列教程第一人。助你轻松实现办公自动化!宗旨:易办公◎早下班!
 最新文章