dav*_*ngo 2 list-comprehension coffeescript
我不是在每个匹配值上调用一个函数,而是想获取值数组['broccoli', 'spinach'],但我不断遇到编译器错误.有人能解释一下我的误解吗?
# Health conscious meal. - This example is from http://coffeescript.org/#loops
foods = ['broccoli', 'spinach', 'chocolate']
eat food for food in foods when food isnt 'chocolate'
# Failed Attempt #1 - Unexpected TERMINATOR
arr = for food in foods when food isnt 'chocolate'
# Failed Attempt #2 - Unexpected ')'
arr = (for food in foods when food isnt 'chocolate')
Run Code Online (Sandbox Code Playgroud)
你错过了理解应该返回的值(这是eat food原始的,但你想要food未修改的返回).所以代替:
for food in foods when food isnt 'chocolate'
Run Code Online (Sandbox Code Playgroud)
你要:
food for food in foods when food isnt 'chocolate'
Run Code Online (Sandbox Code Playgroud)
(虽然如果你的目标是现代JavaScript实现,那么使用类似的东西可能会更具可读性foods.filter (food) -> food isnt 'chocolate'.)