我想创建一个初始化为全零的数组,其长度与另一个数组相同。我听说不推荐new Array(baz.length)
,因为数组构造函数不明确。 (参见this answer)无论如何,因为CoffeeScript具有漂亮的数组理解能力!例如,这有效:
foo = (0 for i in baz)
这是可读和简洁的,我很高兴。 (Hooray CoffeeScript!)但在这种情况下我真的不需要当前的迭代值。我只需要baz中每个元素的元素。 CoffeeScript documentation声明
如果您不需要当前的迭代值,可以省略它:
browser.closeCurrentTab() for [0...count]
所以我应该可以说
foo = (0 for baz)
但是我在编译器中遇到unexpected )
错误。奇怪的是,更复杂的版本确实有效:
foo = (0 for [0...(baz.length)])
来自文档的此规则是否仅适用于具有范围作为来源的理解?这个任务有更清洁的选择吗?
答案 0 :(得分:0)
我实际上认为new Array baz.length
是写它的最简洁方式。由于baz.length总是一个数字,所以不会出现歧义。
我倾向于同意你的观点,但文档暗示0 for baz
应该有效。可能值得一个错误报告?