0

私がやろうとしているのは、単一の Javascript オブジェクトの 2 つのプロパティを取得し、最初のプロパティを 2 番目のキーとして新しい配列を作成することです。

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 という単語として表示されるだけです。これを達成する方法はありますか?

4

2 に答える 2

1

{} 表記を使用する場合、変数をプロパティ名として使用できないため、これは間違っています。

optionArray[i] = {
    option1 : option2
}

代わりにこれを試してください:

optionArray[i] = {} // Make a new empty object
optionArray[i][option1] = option2;
于 2013-06-17T06:40:25.597 に答える
0

次のように記述する必要があります。

optionArray[i] = {}
optionArray[i][option1] = option2;
于 2013-06-17T06:41:29.867 に答える