Mic*_*arf 4 arrays coffeescript
我有一个函数应该返回除第一个参数以外的所有函数
foo = -> arguments[1..]
foo(0,1,2,3,4)
Run Code Online (Sandbox Code Playgroud)
遗憾的是,参数不是数组而是对象.
将对象转换为数组的最佳方法是什么?
mu *_*ort 10
有一些CoffeeScript-ish选项使用splat来处理数组ifing arguments.你可以使用slice:
f = (args...) -> args.slice(1)
Run Code Online (Sandbox Code Playgroud)
或者您可以使用范围而不是直接调用slice:
f = (args...) -> args[1..-1]
Run Code Online (Sandbox Code Playgroud)
您可以简化第二个版本,因为:
切片索引具有有用的默认值.省略的第一个索引默认为零,省略的第二个索引默认为数组的大小.
所以你可以放弃-1并说出:
f = (args...) -> args[1..]
Run Code Online (Sandbox Code Playgroud)
代替.感谢scar3tt指出这一点.