对不起基本问题,但我是coffeescript的新手,而且这些文档对我没有意义。
我指的是本文档中的代码:http://coffeescript.org/#loops具体来说,
# Fine five course dining.
courses = ['greens', 'caviar', 'truffles', 'roast', 'cake']
menu = (i, dish) -> "Menu Item #{i}: #{dish}"
menu i + 1, dish for dish, i in courses
我希望课程成为比萨饼:
pizzas = ["Veggie", "Cheese", "Pepperoni", "Combo"]
menu = (i, pizza) -> "#{i}) #{pizza}"
menu i + 1, pizza for pizza, i in pizzas
然后将结果存储在变量中,以便变量包含"1) Veggie 2) Cheese"
等。我想这样做:
pizzas = ["Veggie", "Cheese", "Pepperoni", "Combo"]
menu = (i, pizza) -> "#{i}) #{pizza}"
menuOptions = menu i + 1, pizza for pizza, i in pizzas
我尝试在其中一个脚本窗口中运行它,但无法让它为我工作,而且我发现语法令人困惑。
我尝试使用console.log menuOptions运行它并得到:
4) Combo
答案 0 :(得分:1)
您的代码有效(没有语法错误),但由于运算符优先级,您的最后一行执行如下:
(menuOptions = menu) i + 1, pizza for pizza, i in pizzas
您想要的是将表达式包装在括号中,以便解释器执行您想要的操作:
menuOptions = (menu i + 1, pizza for pizza, i in pizzas)
console.log menuOptions.join(", ")
#=> 1) Veggie, 2) Cheese, 3) Pepperoni, 4) Combo