Questo è un problema semplice, e l'ho già fatto prima. Non riesco proprio a ricordare come, o esattamente come si chiamava.
In Python posso fare questo:
arr = ['one', 'two']
one, two = arr
come posso farlo in JavaScript?
Questo è un problema semplice, e l'ho già fatto prima. Non riesco proprio a ricordare come, o esattamente come si chiamava.
In Python posso fare questo:
arr = ['one', 'two']
one, two = arr
come posso farlo in JavaScript?
Risposte:
Questa è attualmente l'unica soluzione compatibile con più browser AFAIK:
var one = arr[0],
two = arr[1];
ES6 consentirà l'incarico di destrutturazione:
let [x, y] = ['foo', 'bar'];
console.log(x); // 'foo'
console.log(y); // 'bar'
Oppure, per attenersi al tuo esempio iniziale:
var arr = ['one', 'two'];
var [one, two] = arr;
È inoltre possibile creare un valore predefinito:
const [one = 'one', two = 'two', three = 'three'] = [1, 2];
console.log(one); // 1
console.log(two); // 2
console.log(three); // 'three'
È un compito distruttivo . Puoi farlo in alcuni browser con la seguente sintassi:
[one, two] = arr;
È supportato in alcuni dei browser e transpiler più recenti come Babel e Traceur . Questa era una funzionalità introdotta con ECMAScript 4 che in seguito divenne ECMAScript Harmony, che alla fine divenne ES 2015.
La domanda è piuttosto vecchia ma mi piace pubblicare questa soluzione alternativa (2016): si può anche usare il operatore spread "...".
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator
let xAndY = [42, 1337];
let f = function(x, y) { return x + y; };
f(...xAndY);
Attuazione dell'idea di serio.
http://jsfiddle.net/RichAyotte/6D2wP/
(function(a, b, c, d) {
console.log(a, b, c, d);
}.apply(this, ['a', 'b', 'c', 'd']));
var one = arr[0];
var two = arr[1];
var
per impedire alle variabili di inquinare l'ambito globale.
var
i messaggi per ogni ambito in una volta piuttosto che avere due var
dichiarazioni separate .
CoffeeScript ce l'ha: http://jashkenas.github.com/coffee-script/#pattern_matching
E, citato dalla parte superiore della pagina:
"CoffeeScript è un piccolo linguaggio che viene compilato in JavaScript. Pensalo come il fratello minore meno appariscente di JavaScript: gli stessi geni, all'incirca la stessa altezza, ma un diverso senso dello stile. A parte una manciata di bonus bonus, le dichiarazioni in CoffeeScript corrispondono a -to-one con il loro equivalente in JavaScript, è solo un altro modo di dirlo. "