[英]Coffeescript: Splat Sum Function
我剛剛在Yahoo!的一次采訪中被問到了這一點:構建一個sum
函數,它可以接受無限量的參數(無窮無窮),並且可以對所有參數求和(如果沒有傳入任何參數,則返回0
)。
我的解決方案(錯誤)是使用coffeescript ss的以下內容:
sum = (...) ->
return 0 if arguments.length < 1
sum arguments[0] + ...
如何使用splats如上所述編寫coffeescript sum
函數?
您將需要命名splat參數。 “ ...
”不是有效的變量名。 你好像要
sum = (x, xs...) ->
if arguments.length < 1
then 0
else x + sum xs
我敢肯定,面試問題的目的是要看看如果手動編碼它會如何解決這個問題,而這些面試問題總是有些人為的,但是...
sum = (ary...) ->
ary.reduce (previous, current, index, array) ->
previous + current
, 0
console.log "Sum is: #{sum(1, 4, 6)}"
console.log "Sum is: #{sum()}"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.