2013-06-17 8 views
0

하나의 Javascript 개체에 대해 두 가지 속성을 사용하고 첫 번째 속성을 두 번째 속성의 키로 사용하여 새 배열을 만듭니다.자바에서 새 속성의 키로 개체 속성 할당

var optionArray = {} 

for (var i = 0; i < this.collection.models.length; i++) { 

    var f = $('.optionChange:eq('+i+')')[0].value; 

    if (f === "yes") { 
    this.collection.models[i].set({"optionValue":"yes"}); 
    } 
    else{ 
    this.collection.models[i].set({"optionValue":"no"}); 
    } 

    var option1 = this.collection.models[i].get("optionName");     
    var option2 = this.collection.models[i].get("optionValue"); 
    var result = option1 + ":" + option2; 

    optionArray[i] = { 
    option1 : option2 
    } 

}; 
console.log(optionArray); 

그러나 이것은 {option1 : "option2 속성 값"}으로 출력됩니다. 키는 변경되지 않고 option1이라는 단어로만 표시됩니다. 이것을 달성 할 방법이 있습니까?

+0

그냥 부작용 :'optionArray'는 배열이 아니지만 객체입니다 ... –

답변

1

는 {} 표기법을 사용하면, 속성 이름과 같은 변수를 사용할 수 없기 때문에 이것은 잘못입니다 :

optionArray[i] = { 
    option1 : option2 
} 

대신이 시도 :

optionArray[i] = {} // Make a new empty object 
optionArray[i][option1] = option2; 
0

을 당신은 그것을 작성해야 like :