正在寻找JavaScript中const函数的解释

正在寻找JavaScript中const函数的解释,javascript,Javascript,我想知道这是如何工作的,以及每个部分的含义 const factors=number=>[…数组(number+1).keys()].filter(i=>number%i==0); 我对其中的一些部分做了一些研究,但我并不真正理解它作为一个整体是如何进行的。提前感谢:)让我们把它分解一下 数组(数字+1) 这是创建长度为number+1 .keys() 用于获取[0,number]数组键的迭代器 仅供参考,这不是阵列 […数组(数字+1).keys()] 在迭代器上使用将其转换为数组,因此现在

我想知道这是如何工作的,以及每个部分的含义

const factors=number=>[…数组(number+1).keys()].filter(i=>number%i==0);
我对其中的一些部分做了一些研究,但我并不真正理解它作为一个整体是如何进行的。提前感谢:)

让我们把它分解一下

  • 数组(数字+1)

    这是创建长度为
    number+1

  • .keys()

    用于获取[0,number]数组键的迭代器

    仅供参考,这不是阵列

  • […数组(数字+1).keys()]

    在迭代器上使用将其转换为数组,因此现在我们有了如下内容

    [0,1,2,…,数字]
    
  • .filter(i=>number%i==0)

    用于将上面的范围数组缩小为一个数组,其中的值平均分为
    number

  • 一个低保真的版本可能看起来像

    功能因子(数量){
    常数因子=[]
    对于(假设i=0;i让我们将其分解:

    • Array(number+1)
      :使用
      number+1
      空元素创建数组
    • Array(number+1).keys()
      :以迭代器的形式检索数组的索引

    • […数组(number+1).keys()]
      :从迭代器创建数组(包含元素
      0,1,2,…(number-1),number

    • .filter(cb)
      :为数组中的每个值调用函数
      cb
      ,并返回一个新数组,其中包含回调(
      cb
      )已返回的值
      true
      (使用隐式布尔转换)
    • i=>number%i==0
      :为数组的每个值调用,当前元素存储到
      i
    • number%i
      :将
      number
      i
      相除,并返回余数
    • number%i===0
      :检查余数是否等于零(即如果
      number
      完全可被
      i
      整除)
    • .filter(i=>number%i==0)
      :过滤数组,保留作为
      number
    所以


    创建一个函数,返回一个数组,其中包含给定
    数字的除数

    是否有您不理解的特定部分?@TorNato基本上您将返回
    数字的因子(从0开始)。
    
    number => [...Array(number + 1).keys()].filter(i => number % i === 0);