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 property value"}。密钥不会改变,它只显示为单词 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 回答