Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
192
rated 0 times [  199] [ 7]  / answers: 1 / hits: 87996  / 14 Years ago, thu, august 19, 2010, 12:00:00

I’d like to know if standard JS provides a way of splitting a string straight into a set of variables during their initial declaration. For example in Perl I would use:


my ($a, $b, $c) = split '-', $str;

In Firefox I can write


var [a, b, c] = str.split('-');

But this syntax is not part of the ECMAScript 5th edition and as such breaks in all other browsers. What I’m trying to do is avoid having to write:


var array = str.split('-');
var a = array[0];
var b = array[1];
var c = array[2];

Because for the code that I’m writing at the moment such a method would be a real pain, I’m creating 20 variables from 7 different splits and don’t want to have to use such a verbose method.


Does anyone know of an elegant way to do this?


More From » string

 Answers
6

You can only do it slightly more elegantly by omitting the var keyword for each variable and separating the expressions by commas:



var array = str.split('-'),
a = array[0], b = array[1], c = array[2];


ES6 standardises destructuring assignment, which allows you to do what Firefox has supported for quite a while now:



var [a, b, c] = str.split('-');


You can check browser support using Kangax's compatibility table.


[#95872] Monday, August 16, 2010, 14 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
andrewb

Total Points: 259
Total Questions: 124
Total Answers: 90

Location: Ivory Coast
Member since Sun, Mar 7, 2021
3 Years ago
;