Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Coffeescript forEach函数未定义_Javascript_Arrays_Coffeescript - Fatal编程技术网

Javascript Coffeescript forEach函数未定义

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 )) 它不断返回未定义的值。为什

我正试图用咖啡脚本编写一个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方法不返回结果数组。它为每个数组元素执行一次函数,并且不返回任何内容。如果要返回结果数组,请使用


因为您使用的是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
)
演示: