我正在尝试添加来自' for loop'的属性名称和值。但它在对象案例中不起作用。但是,如果我使用HTML表单,它可以正常工作。
var interestListsObj = {}
interestLoop:function(interestList){
var text = "";
for(var i=0; i<interestList.length; i++) {
text += "<option value='"+interestList[i].machine_name+"'>"+ interestList[i].name + "</option>";
/*line no 6*/ interestListsObj.interestList[i].machine_name = interestList[i].name;
}
$("#listOfInterest").html(text);
console.log(interestListsObj)
},
在上面的代码中,如果我删除了第6行&#39;然后它工作正常。但不确定第6行是什么问题。循环自动退出而没有预期结果。
答案 0 :(得分:2)
问题在于您interestListsObj
的财产分配方式
对象。
如果要使用变量或表达式来创建/访问对象上的属性,请使用[]
方括号表示法。当您的属性名称是简单的JavaScript标识符时,请使用.
。
将您的代码更改为:
interestListsObj[interestList[i].machine_name] = interestList[i].name;