我正在尝试从“ 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/

10-09 05:38