我要做的是获取单个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。有没有办法实现这个目标?
答案 0 :(得分:1)
这是错误的,因为在使用{}表示法时不能使用变量作为属性名称:
optionArray[i] = {
option1 : option2
}
请改为尝试:
optionArray[i] = {} // Make a new empty object
optionArray[i][option1] = option2;
答案 1 :(得分:0)
你必须这样写:
optionArray[i] = {}
optionArray[i][option1] = option2;