在Javascript中将对象属性指定为新属性的键
我试图做的是获取单个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
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
不是数组,而是对象。。。