- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我需要将数组转换为对象,并在此过程中进行一些过滤。
我有两种方法,一种是可链接的函数方法,例如 .map
、.filter
和 .reduce
,另一种是循环带有老式for循环
的数组并改变一个对象。
功能方式:
const output = fields
.filter(field => field.required)
.map(field => field.name)
.reduce((acc, cur, i) => {
acc[cur] = false;
return acc;
}, {});
老派for循环
方式:
let output2 = {};
for (var i = 0; i < fields.length; i++) {
if (fields[i].required) {
output2[fields[i].name] = false;
}
}
我更喜欢函数式方法,因为我认为它可以带来更好的可读代码。然而,我很惊讶(也有点失望)地发现,函数式方法始终比非函数式、老式的 for-loop
转换方式慢。请查找the JSBench here .
我认为这里可能有几个问题:
const
,它具有其他有益的方面,例如(半)不变性。”有人愿意称重吗?
您可以在 JSBench 链接中找到我正在使用的测试数组。
最佳答案
“过滤映射减少”循环同一数组 3 次。所以一个 for 循环总是更快。但减少它本身的效果就很好
const output = fields
.reduce((acc, cur, i) => {
if(cur.required){
acc[cur.name] = false;
}
return acc;
}, {});
关于javascript - 数组过滤和对象转换: what is fastest and what other considerations matter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45370419/
我不确定应该为我的网络服务使用哪种身份验证方法。我在 SO 上搜索过,但没有找到对我有帮助的东西。 初步 我正在构建一个将数据从本地数据库上传到服务器(运行我的网络服务)的应用程序,其中所有记录都合并
我正在制作一个 Android 应用程序,它将包含两项服务,每 24 小时持续发送一次有关用户手机使用情况的数据。 用户应该执行该应用程序,切换按钮以启用手机使用记录,然后用户应该能够使用他的手机进行
我已经编写了一个简单的测试平台来测量三种阶乘实现的性能:基于循环的,非尾递归的和尾递归的。 Surprisingly to me the worst performant was the loop o
假设我需要将数组转换为对象,并在此过程中进行一些过滤。 我有两种方法,一种是可链接的函数方法,例如 .map、.filter 和 .reduce,另一种是循环带有老式for循环的数组并改变一个对象。
我有一组复杂的模板函数,它们在循环中进行计算,结合了 float 和 uint32_t 循环索引。我惊讶地发现,对于这种函数,我的测试代码使用 double float 比使用单精度 float 运行
当我上大学时,老师曾经说过,在良好的结构化应用程序中,您有表示层、业务层和数据层。这是我5年多以来听到的。 当我开始工作时,我发现这是真的,但有时最好不要只有三层。两三天前发现this article
我正在使用 rruleJS ( https://github.com/jkbrzt/rrule ),并且开始日期如下: 开始日期和时间:2015-09-15 23:45每第三周工作日:周一、周三、周日
我正在编写一些旨在执行大量操作(数十万)的框架式代码,所有这些操作都使用相同的基本组件,但需要从外部源接受特定于操作的配置数据。 目前假设有一个配置存储库,在给定适当的设置名称列表的情况下,它知道
我的标题 sample.h 中有这个: #include #ifdef SWIG int a = 0; #endif 在我的 sample.i 中: %module sample %{ #in
我即将开始一个新项目,想知道“仅代码”是否是正确的方法。我们还在考虑通过设计器采用其他模型优先方法,但宁愿在 EF 设计器之外设计我的领域模型。 我们的域可能包含 100 多个实体。我读到过大量实体会
我有这个 css 在每个外部链接后放置一个图标: a[target="_blank"]:after { background: url("images/external_icon.png")
javax.naming.Context 的 Java 文档对其字段进行了简短描述,包括 SECURITY_AUTHENTICATION 和 SECURITY_PROTOCOL here . 与理解它
1。 smtplib.SMTP_SSL 在 Python 3 文档中 smtplib.SMTP_SSL它说: class smtplib.SMTP_SSL(host='', port=0, local
是否可以增强 Speeded Up Robust Features (SURF) 计算机视觉算法,使其能够区分具有不同颜色的均匀分布和形状的物体? 我正在寻找研究论文或任何其他试图增强 SURF 的资
前端开发人员是否需要对 Amazon Silk Browser 进行任何特殊考虑,因为它采用了拆分架构并重新调整了图像大小?或者从开发人员的角度来看,它可以被视为另一个 webkit 浏览器吗? 最佳
我正在尝试学习 OpenGL ES,作为我进军 Android 开发的一部分。 到目前为止,我已经通过剪切和粘贴找到的各种教程创建了以下 Android 应用程序。 该应用程序应该创建 2 个彩色方
据我所知,通常会引入中级类(class)来捕获信息,例如,一支球队有很多球员,一名球员多年来为许多球队效力。引入的中间类是具有基数的契约(Contract),如图所示: 球队-1----N-契约(Co
我正在使用 Express.js (3.0) 开发 Node Web 应用程序;我希望两个用户个人资料都有干净的 URL: domain.com/用户名 以及每个用户创建和共享的页面: domain.
我有两个 git 分支 b' 和 b" 具有完全相同的 SHA-1 和因此内容。我提交 b ' 并在提交时,我使用 -x 应用 cherry-pick 而不是 merge 或 rebase单个提交到我
我是一名优秀的程序员,十分优秀!