首页 > 其他分享 >巧用Array.prototype.keys()求和

巧用Array.prototype.keys()求和

时间:2024-03-19 21:23:20浏览次数:19  
标签:arrayLike keys length sumNum Array prototype

今天复习基础知识无意中在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

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

标签:arrayLike,keys,length,sumNum,Array,prototype
From: https://www.cnblogs.com/zousi/p/18083967

相关文章

  • JavaScript学习笔记5: 对象 - 数组Array
    JS对象-数组Array数组的定义及特性数组定义<script>//数组定义方式1,赋值给变量vararr1=newArray(1,2,3);//数组定义方式2,初始化数组vararr2=[4,5,6];</script>JS数组长度可变<script>vararr2=[4,5,6];//数组初始长度为3......
  • C# ArrayList、HashSet、HashTable、List、Dictionary的区别
    在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求。由于这种限制不方便,所以出现了ArrayList。ArrayList、List<T>ArrayList是可变长数组,你可以将任意多的数据Add到ArrayList里面。其内部维护的数组,当长度不足时,会自动扩容为原来的两倍。但是ArrayList也有一个缺点,......
  • 微信小程序蓝牙红外发送ArrayBuffer合并字节数组
    微信小程序中与设备进行通讯时,经常需要在前面加一些字节,或者处理分包的时候需要加一些字节过去,如果在后端很好操作,但是在小程序中由于ArrayBuffer不支持直接操作,非常不方便最近一个与设备通讯中,需要添加前导字符,百度了一圈没有好的方案,东拼西凑了才算是搞出来了 functioncop......
  • antd 的selectRowkeys 换变量名不生效了
    如果在AntDesign的ProTable中尝试更改selectedRowKeys的属性名(例如换成其他名字),可能会导致无法正确地管理表格行的选中状态。在ProTable中,selectedRowKeys是一个特定的属性名,用于表示当前选中的行的keys列表。如果你需要将selectedRowKeys更改为其他属性名,可以通过......
  • System.arraycopy(...) 用法
    System.arraycopy()方法用于将一个数组中的部分元素复制到另一个数组中的指定位置System.arraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)src:源数组srcPos:源数组中要复制的元素的索引起始位置dest:目标数组destPos:目标数组中要复制到的元素的索引......
  • 数据结构ArrayList之杨辉三角庖丁解牛!
    题外话先给大家露一手我对杨辉三角的理解,虽说标题是庖丁解牛,但是还是虚心请教一下大家,有什么意见都可以提出!正题思维逻辑先画个杨辉三角,有几点需要大家注意一下1.杨辉三角其实在代码里就是一个二维数组,图中i代表行但是是从0开始的,而j则代表每行的元素2.如果想......
  • java集合框架——List集合概述及ArrayList,LinkedList的区别
    前言:List系列集合是Collection集合中两个系列的其中一个,整理下笔记。打好基础,daydayup!需要了解Collection的,可以看这篇java集合框架——Collection集合概述  List系列集合List系列集合的特点为添加的元素有序,可重复,有索引。在继承了Collection方法的基础上,有很多索引......
  • CF57C Array 题解
    发现单调不降序列反过来就是单调不增序列,只需考虑单调不降序列即可。假如将问题转化为:初始为\(1\),一共有\(n+1\)个位置,有\(n-1\)次增加答案的机会,每个位置可以拥有多次增加答案的机会,问一共有多少种可能性。显然答案为\(C_{2n-1}^{n-1}\)。所以总体答案为\(2C_{2n-1}^{n-......
  • 河北王校长源码之ArrayList
    ArrayListy类结构继承AbstractList实现Listlist基本方法实现RandomAccess支持随机访问(下标)for效率高于迭代器(对比LinkedList)实现Cloneable浅克隆实现Serializable序列化成员变量默认容量privatestaticfinalintDEFAULT_CAPACITY=10;空数组......
  • Array Repetition
    原题链接题解设\(len_i\)为第\(i\)次操作后的数组长度,\(last_i\)为该数组的最后一个数字那么对于第一个\(len\)大于\(k\)的\(i\)而言\({A}_{i}[k]\toA_{i-1}[k_1]\)其中\(k_1=(k-1)\%len_{i-1}+1\)如果\(k\)等于此时的\(len_i\)那么输出\(last_i\)小......