当运行for循环时,哪个在coffeescript中更好/更有效
Which is better/more efficient in coffeescript when running a for loop?
在javascript中有两种功能相等的方法来编写以下函数,哪一种更好或更有效,为什么?
(str) ->
s = 0
for i in [0...str.length]
s += str.charCodeAt i
s
或
(str) ->
s = 0
for i in str
s += i.charCodeAt 0
s
旁白:你能建议其他的方法吗?
编辑:根据JSPerf,第一个更快:http://jsperf.com/coffee-for-loop-speed-test -这是为什么?
第一种方法更优雅也更高效。第二步在将字符串转换为charCode
之前,将字符串的每个字符不必要地复制到一个单独的字符串。
你熟悉函数式编程吗?Coffeescript + Underscore.js一起工作非常棒。您可以使用ECMAScript 5上定义的本地Array#reduce
,也可以使用下划线函数。第一个示例:
(s.charCodeAt(0) for s in "hello").reduce((acc, x) -> acc + x) # 532
相关文章:
- 有没有更好的动手、具体的方法来学习Javascript
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 设置嵌套对象属性的更好方法
- 您有更好的动态方式来缩短复杂的代码jquery吗
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 什么更好?使用iframe或jQuery之类的东西在外部网站中加载HTML文件
- 将数组从javascript格式化为php的更好方法,反之亦然
- jquery:将动画绑定到滚动条位置的更好方法
- 有更好的方法吗?(递归解析HTML unicode实体)
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 使用coffeescript/jQuery生成HTML比使用字符串更好
- 检查coffeescript中最后一个元素的更好方法
- 加载这个node.js模块的更好的coffeescript解决方法
- 如何更好地理解Coffeescript/JavaScript混合
- 当运行for循环时,哪个在coffeescript中更好/更有效