如何将数组的内容复制到变量

时间:2018-04-03 15:24:07

标签: arrays coffeescript

对不起基本问题,但我是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

1 个答案:

答案 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