Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CoffeeScript: Expand array in function call

In Ruby I can call methods with array elements used as positional parameters like this

method(fixed_arg1, fixed_arg2, *array_of_additional_args)

Here the "*" operator expands the array in place.

I'm trying to do the same in CoffeeScript, but haven't found a way. Specifically, I want to pass additional arguments in a call to a jQuery function

$('#my-element').toggle(true, *config.toggleOptions)

The syntax above does not work, obviously, and I'm looking for a way that does.

like image 350
Michael Schuerig Avatar asked Jun 09 '12 10:06

Michael Schuerig


2 Answers

Try

$('#my-element').toggle(true, config.toggleOptions...)
like image 80
Stefan Avatar answered Nov 16 '22 17:11

Stefan


You need to splat it.

fun(1,2,3,4,5)

fun = (first, second, rest...) ->
alert first # 1
alert second # 2
alert rest   # [3, 4, 5 ]
like image 22
gprasant Avatar answered Nov 16 '22 15:11

gprasant