【发布时间】:2023-03-28 20:24:01
【问题描述】:
我有一个项目数组,我想对满足某些要求的项目执行一些任务。有两种方法可以做到这一点。
首先,在forEach中使用if子句
arr.forEach(item => {
if (isSatisfied(item)) {
//...do some tasks
}
}
其次,filter 数组,然后使用 forEach 和过滤后的数组。
arr.filter(item => isSatisfied(item)).forEach(item => { /* do some tasks */ });
isSatisfied 会检查该项目是否满足条件。
哪一个会给我更好的表现,为什么?感谢您的帮助。
【问题讨论】:
-
我投第一票
-
第一个更好,但传统的old school for loop 甚至比
forEach更快。也可能在code review exchange 上获得更多评论 -
这取决于arr.filter的结果是否被重用以及过滤掉多少百分比的项目。实现之间的性能可能会有很大差异。使用更符合语义的。
标签: javascript arrays performance