답변:
이것은 현재 브라우저 간 호환 가능한 유일한 솔루션 AFAIK입니다.
var one = arr[0],
two = arr[1];
ES6은 다음과 같은 구조적 할당을 허용합니다.
let [x, y] = ['foo', 'bar'];
console.log(x); // 'foo'
console.log(y); // 'bar'
또는 초기 예를 고수하십시오.
var arr = ['one', 'two'];
var [one, two] = arr;
기본값을 만들 수도 있습니다.
const [one = 'one', two = 'two', three = 'three'] = [1, 2];
console.log(one); // 1
console.log(two); // 2
console.log(three); // 'three'
그것은 할당을 파괴하고 있습니다. 다음과 같은 구문으로 일부 브라우저에서 수행 할 수 있습니다.
[one, two] = arr;
Babel 및 Traceur 와 같은 일부 최신 브라우저 및 트랜스 필러에서 지원됩니다 . 이것은 ECMAScript 4에서 도입 된 기능으로 나중에 ECMAScript Harmony가되었으며 결국 ES 2015가되었습니다.
질문은 다소 오래되었지만이 대안 (2016) 솔루션을 게시하고 싶습니다 : 스프레드 연산자 "..."를 사용할 수도 있습니다 .
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);
진지한 아이디어의 구현.
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
변수가 전역 범위를 오염시키는 것을 방지하기 위해 실제로 사용해야 합니다.
var
두 개의 별도 var
선언이 아닌 한 번에 각 범위의 모든을 선언하는 것이 좋습니다 .
CoffeeScript에는 다음이 있습니다. http://jashkenas.github.com/coffee-script/#pattern_matching
그리고 페이지 상단에서 인용했습니다.
"CoffeeScript는 JavaScript로 컴파일되는 작은 언어입니다. JavaScript는 덜 유쾌한 동생이라고 생각하십시오. 같은 유전자, 대략 같은 높이이지만 다른 스타일 감각입니다. 소수의 보너스 혜택 외에도 CoffeeScript의 문장은 하나에 해당합니다. "자바 스크립트에서 동등한 기능을 갖춘 것으로, 또 다른 방법입니다."