JS 개체 속성 이름을 동적으로 설정해야합니다.변수에서 JS 개체 속성 이름을 설정하는 방법
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
결과는 다음과 같아야합니다
data = {
1name: 'name1'
2name: 'name1'
}
JS 개체 속성 이름을 동적으로 설정해야합니다.변수에서 JS 개체 속성 이름을 설정하는 방법
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
결과는 다음과 같아야합니다
data = {
1name: 'name1'
2name: 'name1'
}
이 동적으로 당신은 동적으로 키를 설정하는 []
표기법을 사용해야합니다 값
var jsonVariable = {};
for (var i = 1; i < 3; i++) {
var jsonKey = i + 'name';
jsonVariable[jsonKey] = 'name' + i;
}
확인이 밖으로
jsonVariable = {};
for(i=1; i<=3; i++) {
jsonVariable[i]=i+'name';
}
document.writeln(jsonVariable[1]);
document.writeln(jsonVariable[2]);
document.writeln(jsonVariable[3]);
jsonVariable = {}
for(i=1; i<3; i++) {
var jsonKey = i+'name';
jsonVariable[jsonKey] = 'name1'
}
이 의지에 변수를 포장, 동적 오브젝트 키를 생성하는 객체 리터럴 구문을 사용할 수 있습니다 와 유사해야합니다.
ECMAScript를 6 94,, 당신은 다음과 같이 객체 리터럴 구문을 사용하여 변수 속성 이름을 사용할 수 있습니다
var keyName = 'myKey';
var obj = {
[keyName]: 1
};
obj.myKey;//1
이 구문이 사용할 수있는 다음과 같은 최신 브라우저에서 :
에지 12 + (아니 IE 지원 없음), FF34 +, 크롬 44+, 오페라 31+, 사파리 7.1 이상
(https://kangax.github.io/compat-table/es6/)
babel과 같은 transpiler을 사용하여 이전 브라우저에 지원을 추가 할 수 있습니다. rollup 또는 webpack과 같은 모듈 번들을 사용하는 경우 전체 프로젝트를 쉽게 옮길 수 있습니다.
변수의 출처는 중요하지 않습니다. 우리가 가지고있는 주요한 것 ... 대괄호 "[..]"사이에 변수 이름을 설정하십시오.
var optionName = 'nameA';
var JsonVar = {
[optionName] : 'some value'
}
이것은 훌륭하게 작동합니다. 모든 브라우저/버전에서 작동하는지 궁금합니다. – Mercury
순차적 인 경우 왜 배열을 사용하지 않습니까? – epascarello
나는 당신 중 세 명이 잘못된 화살을 쳤다는 것을 알고 싶습니다. 어서, 진정해. – Charles
[JavaScript 객체 리터럴에서 키에 변수 사용하기] 가능한 중복 (http://stackoverflow.com/questions/2274242/using-a-variable-for-a-key-in-a-javascript-object- 문자 그대로) – halfer