Inf*_*tor 6 javascript performance compiler-optimization
我用函数式风格编写了这段 JavaScript 代码:
\n\nsomeArray\n .filter((element) => element)\n .map((element) => element.property)\n .map((property) => doSomethingWithIt)\nRun Code Online (Sandbox Code Playgroud)\n\n现在,na\xc3\xafve 实现将在数组上循环三次 \xe2\x80\x94,每个filter和map\xe2\x80\x94 一次,但是优化器应该能够将其优化为执行多个操作的一个循环,假设所有函数是纯粹的。
(大多数?)JavaScript 引擎是否对此进行了优化?还是需要手动优化?
\n\n编辑:我认为优化的是将其减少到一个循环:
\n\nsomeArray.reduce((acc, element) => {\n if(!element) {\n return acc\n }\n\n return acc.push(doSomethingWithIt(element.property))\n}, [ ])\nRun Code Online (Sandbox Code Playgroud)\n
filter除非您想将其包含undefined在数组中,否则您无法删除该调用 - 您可以map使用解构将两个调用合二为一,但是:
someArray.filter(element => element).map(({ property }) => doSomething(property));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
490 次 |
| 最近记录: |