Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中将对象属性指定为新属性的键_Javascript_Backbone.js_Underscore.js - Fatal编程技术网

在Javascript中将对象属性指定为新属性的键

在Javascript中将对象属性指定为新属性的键,javascript,backbone.js,underscore.js,Javascript,Backbone.js,Underscore.js,我试图做的是获取单个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({"opti

我试图做的是获取单个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); 
var optionArray={}
对于(var i=0;i

但是,这仅输出到{option1:“option2属性值”}。该键不会更改,它仅显示为单词option1。有什么方法可以做到这一点吗?

这是错误的,因为在使用{}表示法时不能使用变量作为属性名:

optionArray[i] = {
    option1 : option2
}
请尝试以下方法:

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

你必须这样写:

optionArray[i] = {}
optionArray[i][option1] = option2;

请注意:
optionArray
不是数组,而是对象。。。