Javascript Coffeescript forEach函数未定义
我正试图用咖啡脚本编写一个FizzBuzz程序,如下所示:Javascript Coffeescript forEach函数未定义,javascript,arrays,coffeescript,Javascript,Arrays,Coffeescript,我正试图用咖啡脚本编写一个FizzBuzz程序,如下所示: array = [1..100] console.log(array.forEach( (value)-> if value%3 is 0 and value%5 is 0 return "fizzbuz" if value%3 is 0 return "fizz" if value%5 is 0 return "buzz" value )) 它不断返回未定义的值。为什
array = [1..100]
console.log(array.forEach(
(value)->
if value%3 is 0 and value%5 is 0
return "fizzbuz"
if value%3 is 0
return "fizz"
if value%5 is 0
return "buzz"
value
))
它不断返回未定义的值。为什么会发生这种情况?数组方法不会返回结果数组。它为每个数组元素执行一次函数,并且不返回任何内容。如果要返回结果数组,请使用
array方法不返回结果数组。它为每个数组元素执行一次函数,并且不返回任何内容。如果要返回结果数组,请使用
因为您使用的是CoffeeScript,所以很简单,它会生成数组,这样您就可以说:
console.log(for value in array
if value % 3 is 0 and value % 5 is 0
"fizzbuz"
else if value % 3 is 0
"fizz"
else if value % 5 is 0
"buzz"
else
value
)
或者,如果您确实想使用函数,请使用do创建SIF:
console.log(for value in array
do (value) ->
return 'fizzbuz' if value % 3 is 0 and value % 5 is 0
return 'fizz' if value % 3 is 0
return 'buzz' if value % 5 is 0
return value
)
演示:因为您使用的是CoffeeScript,所以很简单,它会生成数组,这样您就可以说:
console.log(for value in array
if value % 3 is 0 and value % 5 is 0
"fizzbuz"
else if value % 3 is 0
"fizz"
else if value % 5 is 0
"buzz"
else
value
)
或者,如果您确实想使用函数,请使用do创建SIF:
console.log(for value in array
do (value) ->
return 'fizzbuz' if value % 3 is 0 and value % 5 is 0
return 'fizz' if value % 3 is 0
return 'buzz' if value % 5 is 0
return value
)
演示: