If you have been writing Javascript code for sometime chances are you came across a situation where you had to split an array (or object) returned by a function to scaler primitive variables. Let's look at some examples.
Split output of custom function:
function geoLocation() {
//... stuff ....
return [40.712, -74.005];
}
// To get the location co-ordinates in 2 variables
var loc = geoLocation();
var longitude = loc[0], latitude = loc[1];
// ES6 way with destructuring
var [longitude, latitude] = geoLocation();
Javascript itself has some builtin functions like - String.split() - that return arrays. Here is how you split a name in ES6:
var [firstName, lastName] = 'Mark Twain'.split(' ');
Use it with regular expressions to give meaningful names to captured data:
var [, year, month, day ] = /^(\d+)-(\d+)-(\d+)$/.exec('2016-01-29');
Note that while destructuring, any target variable declared in left side that is not found in right side source object or array is set to undefined. For example b would set to undefined below:
var [a,b] = [3]; // a => 3, b => undefined
Let's go for a question. Look at below code and answer the following question:
var name = 'Eric Arthur Blair';
var [first, second, third] = name.split(' ');
if(typeof(third) != 'undefined')
console.log('First:' + first + '|Middle:' + second + '|Last:' + third);
else
console.log('First:' + first + '|Last:' + second);
What would be logged above?