자바 스크립트. 여러 변수에 배열 값을 할당 하시겠습니까?
이 질문에 이미 답변이 있습니다.
var a,b,c;
var arr = [1,2,3];
[a,b,c] = arr;
이 코드는 Firefox에서 완벽하게 작동하여 a = 1, b = 2 및 c = 3
이지만 Chrome에서는 작동하지 않습니다. Chrome 버그
입니까 아니면 유효한 자바 스크립트 코드가 아니십니까? (자바 스크립트 참조에서 찾지 못했습니다)
이 코드를 최소한의 손상으로 Chrome에 적합하도록 수정하려면 어떻게해야합니까?
(나는 a = arr [0]; b = arr [1] ... 또는 항상 arr.shift ()와 동일하게 쓰는 것을 좋아하지 않습니다)
추신 이것은 단지 예제 코드입니다. 실제 코드에서는 코드
외부 어딘가에서 arr 배열을 얻습니다.
이것은 Destructuring assignment 라는 JavaScript 1.7의 새로운 기능입니다 .
Destructuring 할당을 사용하면 배열 및 개체 리터럴의 구성을 미러링하는 구문을 사용하여 배열 또는 개체에서 데이터를 추출 할 수 있습니다.
개체 및 배열 리터럴 식을 사용하면 임시 데이터 패키지를 쉽게 만들 수 있습니다. 이러한 데이터 패키지를 만든 후에는 원하는 방식으로 사용할 수 있습니다. 함수에서 반환 할 수도 있습니다.
비 구조화 할당으로 할 수있는 특히 유용한 작업 중 하나는 다음 예제로 가득 찬 섹션에서 볼 수 있듯이 여러 가지 흥미로운 작업을 수행 할 수 있지만 단일 문으로 전체 구조를 읽는 것입니다.
예를 들어 비 구조화 할당을 사용하여 값을 바꿀 수 있습니다.
var a = 1; var b = 3; [a, b] = [b, a];
이 기능은 Perl 및 Python과 같은 언어에있는 기능과 유사합니다.
안타깝게도이 버전 표에 따르면 JavaScript 1.7은 Chrome에서 구현되지 않았습니다. 하지만 다음 위치에 있어야합니다.
- FireFox 2.0 이상
- IE 9
- Opera 11.50.
이 jsfiddle에서 직접 시도해보십시오 : http://jsfiddle.net/uBReg/
나는 이것을 Chrome (실패), IE 8 (실패) 및 FireFox 5 (위키 테이블에 따라 작동 함)에서 테스트했습니다.
@Justin이 이미 답변했듯이 Javascript 1.7에서만 가능합니다. 다음은 널리 사용되는 브라우저에서이를 시뮬레이션하는 시험입니다.
function assign(arr, vars) {
var x = {};
var num = Math.min(arr.length, vars.length);
for (var i = 0; i < num; ++i) {
x[vars[i]] = arr[i];
}
return x;
}
var arr = [1, 2, 3];
var x = assign(arr, ['a', 'b', 'c']);
var z = x.a + x.b + x.c; // z == 6
얼마나 유용한 지 모르겠습니다.
참고 URL : https://stackoverflow.com/questions/6983026/javascript-assign-array-values-to-multiple-variables
'developer tip' 카테고리의 다른 글
웹 애플리케이션 모니터링 모범 사례 (0) | 2020.10.17 |
---|---|
Git 서브 모듈의 대안? (0) | 2020.10.17 |
CPU 아키텍처 컴파일 시간 감지 (0) | 2020.10.17 |
Dumpbin.exe를 찾을 수 없습니다 (0) | 2020.10.16 |
Python으로 웹 사이트에 로그인하려면 어떻게해야합니까? (0) | 2020.10.16 |