To jest prosty problem i już to zrobiłem. Po prostu nie pamiętam, jak to się nazywało.
W Pythonie mogę to zrobić:
arr = ['one', 'two']
one, two = arr
jak to zrobić w JavaScript?
To jest prosty problem i już to zrobiłem. Po prostu nie pamiętam, jak to się nazywało.
W Pythonie mogę to zrobić:
arr = ['one', 'two']
one, two = arr
jak to zrobić w JavaScript?
Odpowiedzi:
Jest to obecnie jedyne rozwiązanie AFAIK kompatybilne z różnymi przeglądarkami:
var one = arr[0],
two = arr[1];
ES6 pozwoli na destrukcyjne przypisanie:
let [x, y] = ['foo', 'bar'];
console.log(x); // 'foo'
console.log(y); // 'bar'
Lub, aby trzymać się swojego początkowego przykładu:
var arr = ['one', 'two'];
var [one, two] = arr;
Możesz również utworzyć wartość domyślną:
const [one = 'one', two = 'two', three = 'three'] = [1, 2];
console.log(one); // 1
console.log(two); // 2
console.log(three); // 'three'
To destrukcyjne zadanie . Możesz to zrobić w niektórych przeglądarkach z następującą składnią:
[one, two] = arr;
Jest obsługiwany w niektórych najnowszych przeglądarkach i transpilerach, takich jak Babel i Traceur . Była to funkcja wprowadzona w ECMAScript 4, który później stał się ECMAScript Harmony, który ostatecznie stał się ES 2015.
Pytanie jest dość stare, ale lubię zamieścić to alternatywne (2016) rozwiązanie: Można również użyć operatora spreadu "...".
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);
Realizacja pomysłu poważnego.
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];
varaby zapobiec zanieczyszczaniu globalnego zasięgu przez zmienne.
vars dla każdego zakresu za jednym zamachem, zamiast dwóch oddzielnych vardeklaracji.
CoffeeScript to ma: http://jashkenas.github.com/coffee-script/#pattern_matching
I cytowany z góry strony:
„CoffeeScript to mały język, który kompiluje się do JavaScript. Pomyśl o nim jako o mniej ostentacyjnym młodszym bracie JavaScript - te same geny, mniej więcej ten sam wzrost, ale inne poczucie stylu. Oprócz kilku dodatkowych gadżetów, stwierdzenia w CoffeeScript odpowiadają jednemu -to-one z ich odpowiednikiem w JavaScript, to po prostu inny sposób wyrażenia tego. "