156 votes

Déballer un tableau dans des variables séparées en JavaScript

C'est un problème simple, et je l'ai déjà fait auparavant. Je ne me souviens plus comment, ni comment on l'appelait.

En python, je peux faire ceci:

 arr = ['one', 'two']
one, two = arr
 

Comment puis-je faire cela en JavaScript?

200voto

Mathias Bynens Points 41065

C’est actuellement la seule solution compatible avec tous les navigateurs compatibles:

 var one = arr[0],
    two = arr[1];
 

ES6 permettra l'affectation de déstructuration:

 var [x, y] = ['foo', 'bar'];
console.log(x); // 'foo'
console.log(y); // 'bar'
 

Ou, pour coller à votre exemple initial:

 var arr = ['one', 'two'];
var [one, two] = arr;
 

25voto

Andy E Points 132925

C'est la mission de déstructuration . Vous pouvez le faire dans certains navigateurs avec la syntaxe suivante:

 [one, two] = arr;
 

Il n'est cependant pas supporté par Internet Explorer. Il s’agissait d’une fonctionnalité introduite dans ECMAScript 4, qui est désormais ECMAScript Harmony. Nous pourrions donc le voir dans une future révision de la spécification.

7voto

serious Points 117

Vous pouvez utiliser la fonction apply de array si vous souhaitez qu'un élément de tableau soit passé en tant qu'argument de fonction.

2voto

Jakob Points 11155

CoffeeScript a: http://jashkenas.github.com/coffee-script/#pattern_matching

Et, cité dans le haut de la page:

"CoffeeScript est un peu de langage qui se compile en JavaScript. Il pense que le JavaScript est moins ostentatoire petit frère - mêmes gènes, à peu près la même hauteur, mais en un autre sens du style. En dehors d'une poignée de bonus, goodies, des déclarations en CoffeeScript correspondent un à un avec leur équivalent en JavaScript, c'est juste une autre façon de le dire."

2voto

rob waminal Points 4567
var one = arr[0];
var two = arr[1];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X