巧用Array.prototype.keys()求和

今天复习基础知识无意中在MDN上找到Array.prototype.keys()一个有意思的用法,在非数组对象上使用keys(),使用call读取this上的length属性,然后生成0~length-1的索引,并且不会实际访问,代码如下:

 1 function sum(num = 0) {
 2     const arrayLike = {
 3         length: num + 1
 4     }
 5     let sumNum = 0
 6     for (const entry of Array.prototype.keys.call(arrayLike)) {
 7         sumNum += entry
 8     }
 9     return sumNum
10 }
11 
12 sum(10)//55

写起来比递归麻烦一些,也没什么实际用途,仅供理解。

posted @ 2024-03-19 21:07  宫羽宫羽  阅读(8)  评论(0编辑  收藏  举报