我正在尝试从“ for循环”中添加属性名称和值。但是,它在对象情况下不起作用。但是,如果我使用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行”,那么它将正常工作。但是不知道第6行有什么问题。循环自动退出,没有结果。
最佳答案
问题在于您在interestListsObj
上进行属性分配的方式
宾语。
如果要使用变量或表达式在对象上创建/访问属性,请使用[]
方括号表示法。当您的属性名称是简单的javascript标识符时,请使用.
。
将代码更改为此:
interestListsObj[interestList[i].machine_name] = interestList[i].name;
关于javascript - 从循环添加对象属性不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44185990/