javascript - 在 JavaScript 中寻找 const 函数的解释
问题描述
我想知道这是如何工作的,以及每个部分的含义。
const factors = number => [...Array(number + 1).keys()].filter(i=>number % i === 0);
我已经对一些位进行了一些研究,但我并不真正了解它们是如何作为一个整体结合在一起的。提前致谢 :)
解决方案
让我们分解一下:
Array(number + 1)
number + 1
: 创建一个包含空元素的数组Array(number + 1).keys()
: 以迭代器的形式检索数组的索引[...Array(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
所以,
number => [...Array(number + 1).keys()].filter(i => number % i === 0);
创建一个函数,该函数返回一个包含给定除数的数组number
。
推荐阅读
- android - Android在状态栏下绘制TYPE_APPLICATION_OVERLAY窗口
- avfoundation - 使用 AVFoundation 在视频上绘制自定义时间戳文本的最佳方法是什么?
- rust - 当 3 个“存储”顺序发生并且只有一个是原子的时会发生什么
- mongodb - 如何使“$nearSphere”也返回没有任何坐标的项目?
- azure-functions - 带有日期时间的 Spring Cloud 函数 azure json 输出
- xcode - 如何在显示触摸或光标的同时捕获 iPhone 模拟器的视频?
- telegram-bot - 通过换行符解析 Telegram JSON 消息
- javascript - 使用 onClick 事件更改对象值
- java - 如何从 Java XML DOM 中的 DTD 强制删除具有隐含默认值的属性
- java - 如何在 CloudSim Plus 中为 Cloudlets 设置非相对提交延迟?