Dies ist ein einfaches Problem, und ich habe es schon einmal gemacht. Ich kann mich einfach nicht erinnern, wie oder wie es genau hieß.
In Python kann ich das tun:
arr = ['one', 'two']
one, two = arr
Wie mache ich das in JavaScript?
Dies ist ein einfaches Problem, und ich habe es schon einmal gemacht. Ich kann mich einfach nicht erinnern, wie oder wie es genau hieß.
In Python kann ich das tun:
arr = ['one', 'two']
one, two = arr
Wie mache ich das in JavaScript?
Antworten:
Dies ist derzeit die einzige browserübergreifende Lösung AFAIK:
var one = arr[0],
two = arr[1];
ES6 ermöglicht die Destrukturierungszuweisung:
let [x, y] = ['foo', 'bar'];
console.log(x); // 'foo'
console.log(y); // 'bar'
Oder um an Ihrem ersten Beispiel festzuhalten:
var arr = ['one', 'two'];
var [one, two] = arr;
Sie können auch einen Standardwert erstellen:
const [one = 'one', two = 'two', three = 'three'] = [1, 2];
console.log(one); // 1
console.log(two); // 2
console.log(three); // 'three'
Das ist eine Destrukturierungsaufgabe . Sie können dies in einigen Browsern mit der folgenden Syntax tun:
[one, two] = arr;
Es wird in einigen der neuesten Browser und Transpiler wie Babel und Traceur unterstützt . Dies war eine Funktion, die mit ECMAScript 4 eingeführt wurde und später zu ECMAScript Harmony wurde, das schließlich zu ES 2015 wurde.
Die Frage ist ziemlich alt, aber ich poste gerne diese alternative (2016) Lösung: Man kann auch den Spread- Operator "..." verwenden.
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);
Umsetzung der ernsthaften Idee.
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, um zu verhindern, dass die Variablen den globalen Bereich verschmutzen.
vars für jeden Bereich auf einmal zu deklarieren, als zwei separate varDeklarationen zu haben.
CoffeeScript hat es: http://jashkenas.github.com/coffee-script/#pattern_matching
Und zitiert oben auf der Seite:
"CoffeeScript ist eine kleine Sprache, die sich in JavaScript kompilieren lässt. Stellen Sie sich JavaScript als weniger protzigen kleinen Bruder vor - dieselben Gene, ungefähr dieselbe Größe, aber einen anderen Sinn für Stil. Abgesehen von einer Handvoll Bonus-Goodies entsprechen Aussagen in CoffeeScript einer -zu-eins mit ihrem Äquivalent in JavaScript, es ist nur eine andere Art, es auszudrücken. "