YoB*_*Bre -3 javascript coffeescript angularjs lodash
在lodash中滚动_.map和_.forEach列表的最佳方法是什么?我不需要返回值,但我只在循环中做一些事情.
在性能方面,这两个功能有什么区别?
a = []
b = []
list = response._source.carico_scarico
if angular.isDefined(list)
_.forEach(list, (cs) ->
if cs.qta >= 0 then a.push cs
if cs.qta < 0 then b.push cs
)
Run Code Online (Sandbox Code Playgroud)
要么
a = []
b = []
list = response._source.carico_scarico
if angular.isDefined(list)
_.map(list, (cs) ->
if cs.qta >= 0 then a.push cs
if cs.qta < 0 then b.push cs
)
Run Code Online (Sandbox Code Playgroud)
在性能方面,这两个功能有什么区别?
这不太重要.如果您担心这件事,请创建一个代表您真实代码的测试并尝试它(可能在http://jsperf.com上).但除非你处理成千上万的条目,或者重复你的循环数十万次,否则它们之间任何差异的真实影响可能都不算什么.(哎呀,有了现代的JavaScript引擎,成千上万的人可能甚至不足以看到你所关心的差异.)
但推测:由于map必须创建并填充一个数组以用作返回值(您将忽略它),而forEach不是,因此map可以非常轻微地进行推理.
但是:这里更大的论点是使用正确的工具:如果你不需要返回值,请不要使用map.其目的是通过将原始对象的值映射到新对象来创建结果.你不希望这样,所以这map是一个奇怪的选择,可能会让人们对代码进行线下维护.
| 归档时间: |
|
| 查看次数: |
1533 次 |
| 最近记录: |