while 循环的 CoffeeScript 替代语法

CoffeeScript alternative syntax for a while loop

我有这个函数是用 CoffeeScript 写的,我觉得应该写得更好:

addCSS = (files) ->
  i = files.length - 1

  while i >= 0
    $("<link/>",
        rel: "stylesheet"
        href: files[i]
    ).appendTo $("head")
    i--
  return

files arg 只是一个文件路径数组。

在 CoffeeScript 中是否有更多 succinct/cleaner 的写法?

简单

addCSS = (files) ->
  for file in files
    $("<link/>",
        rel: "stylesheet"
        href: file
    ).appendTo $("head")

(也不需要 return,尽管它确实可以防止咖啡 return 喝一堆东西)

如果您想知道,由于 JS 具有 for ... in 循环的可怕行为,它被编译为

for (_i = 0, _len = files.length; _i < _len; _i++) {
    file = files[_i];
    // ...
}

编辑

我刚才才知道你是把数组倒过来,所以会是

for file in files by -1

(自 1.5.0 起支持)

编译为 for (_i = files.length - 1; _i >= 0; _i += -1) {