数组多次 filter, 多次 map 混合链式调用过程中, 有没有办法只在最后一次调用时生成一次数组呢?

2022-07-25 23:48:58 +08:00
 bthulu

貌似每次 filter 或 map 都会返回一个新的数组, 对性能和内存 GC 影响很大. 不知有没有类似 Java 的 Lambda, C#的 Linq, 不论链式调用了多少次 filter, map, select, 都不会生成最终的数组或链表, 而是将这些条件判断函数 /方法存储起来, 直到遇到最后的终结点时, 才进行遍历, 依次匹配前面保存的条件判断, 最终返回一个数组或链表.

3452 次点击
所在节点    JavaScript
25 条回复
honhon
2022-07-26 14:01:38 +08:00
你要不手写 for 循环吧
molika
2022-07-26 14:20:25 +08:00
transducer
bthulu
2022-07-26 14:30:56 +08:00
@lin07hui 用浏览器干嘛? 我这是跑后台服务, 控制厂内设备自动寻路的
bthulu
2022-07-26 14:33:29 +08:00
@honhon 没法手写, 是个公共基类, 会不断有继承类对这个上层数组进行过滤处理. 基类是没法预知所有子类行为的
frisktale
2022-07-26 17:31:54 +08:00
应该不行吧,又不是 linq

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/868665

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX