0
当我运行获得一维数组,而不是多维
[w*2 for w in [1, 2, 3]]
我得到
[[2, 4, 6]]
但实际上我想
[2, 4, 6]
显然,下面是运重刑,但我不希望依赖于:
[w*2 for w in [1, 2, 3]][0]
当我运行获得一维数组,而不是多维
[w*2 for w in [1, 2, 3]]
我得到
[[2, 4, 6]]
但实际上我想
[2, 4, 6]
显然,下面是运重刑,但我不希望依赖于:
[w*2 for w in [1, 2, 3]][0]
我找到了解决自己:
(w*2 for w in [1, 2, 3])
// -> [2, 4, 6]
因为CoffeeScript中提出的“一切返回一个值”的理想,在'[]'是没有必要的使其表现得像一个列表理解。 '()'通常是,但并非总是必要的,这取决于你想要对结果做什么以及你使用的是什么空白。 –
@AaronDufour:感谢您的意见。在我的情况下,括号是必要的,你不觉得吗? – Amberlamps
他们不是;看到http://jashkenas.github.com/coffee-script/#try:w*2%20for%20w%20in%20%5B1%2C%202%2C%203%5D但是,如果你想分配结果像'a =(w * 2表示[1,2,3]中的w),它们是必需的;否则'a = w * 2'将成为循环的主体,而不仅仅是'w * 2'。 –