Demystifying the Splat (…) Operator in CoffeeScript

CoffeeScript @ Training

CoffeeScript, known for its simplicity and expressiveness, offers a range of powerful features to streamline coding. One such feature is the splat (...) operator, which serves as a versatile tool for various tasks. In this article, we’ll delve into the purpose and utility of the splat operator in CoffeeScript, with real-world examples to illustrate its capabilities. The splat (…) operator in CoffeeScript is a powerful and flexible tool for array manipulation, function parameter handling, and object property expansion.

Understanding the Splat Operator:

Introduction to ...: The splat operator (...) is used for array manipulation, function parameters, and more.

Known as “Rest” and “Spread”: In JavaScript, it’s often referred to as the “rest” and “spread” operator, but in CoffeeScript, it’s commonly known as the “splat” operator.

Splat Operator in Array Manipulation:

Expanding Arrays:

You can use the splat operator to expand the elements of an array within another array.


arr1 = [1, 2]
arr2 = [3, 4, ...arr1, 5]

Collecting Remaining Elements:

It can collect remaining elements into an array when destructuring arrays.


[head,] = [1, 2, 3, 4]

Splat Operator in Function Parameters:

Arbitrary Number of Arguments:

When defining function parameters, you can use the splat operator to accept an arbitrary number of arguments.


sum = (a, b, ...) -> a + b + (if ... then 0 else 0)

Combining with Named Parameters:

You can combine the splat operator with named parameters to create flexible function signatures.


combine = (separator, ...elements) -> elements.join(separator)

Splat Operator for Object Properties:

Expanding Object Properties:

The splat operator can be used to expand object properties within another object.


obj1 = { a: 1, b: 2 }
obj2 = { ...obj1, c: 3 }
Author: user