我是在雅虎接受采访时被问到这个问题的:构建一个sum函数,它可以接受无限数量的参数(从零到无限),它将所有参数之和(如果没有传入参数,则返回0 )。
我的解决方案(错误)是用coffeescript碎片实现的
sum = (...) ->
return 0 if arguments.length < 1
sum arguments[0] + ...如何使用splats编写上面描述的coffeescript sum函数?
发布于 2014-12-17 07:23:06
我相信面试问题的目的是看看如果手工编码的话,你会如何处理这个问题,而这些面试问题总是有点人为的,但是.
sum = (ary...) ->
ary.reduce (previous, current, index, array) ->
previous + current
, 0
console.log "Sum is: #{sum(1, 4, 6)}"
console.log "Sum is: #{sum()}"发布于 2014-12-16 00:51:11
您需要命名splat参数。"...“不是一个有效的变量名。你好像想
sum = (x, xs...) ->
if arguments.length < 1
then 0
else x + sum xshttps://stackoverflow.com/questions/27495686
复制相似问题