我的代码中有几个地方需要遍历字符串并逐个字符地执行操作。我的 node.js 应用程序需要为每个请求执行数十次,而且字符串的长度通常会相当长。
我见过的将像下面这样的javascript转换为coffeescript的唯一方法是根据字符串的长度创建一个数组。我遇到的问题是它在硬件方面是一件额外的事情,占用额外的内存,而且似乎没有必要(我的节点应用程序处理 dgram - 每秒高达数千 - 所以所有这些额外的工作加起来)。
JavaScript 方式:
for(var i = 0; i < str.length; i++) { /* Do stuff with str here */ }
建议的 CoffeeScript 方式
for i in [0..str.length]
# Do stuff here
同样,我认为当传统的 for 循环不必从硬件角度搞乱该步骤时,强制创建数组对象是愚蠢的。
我发现的唯一解决方法是使用 while 循环,例如:
i = 0
while i < str.length
# Do stuff
i++
虽然这样可行,但它甚至比直接使用简单 for 循环的 JavaScript 方式要冗长得多。
有没有办法在 CoffeeScript 中使用 for 循环,而不必生成多余的数组来执行基本迭代?