从循环中添加对象属性不起作用

时间:2017-05-25 17:01:05

标签: javascript jquery

我正在尝试添加来自' 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行是什么问题。循环自动退出而没有预期结果。

1 个答案:

答案 0 :(得分:2)

问题在于您interestListsObj的财产分配方式  对象。
如果要使用变量或表达式来创建/访问对象上的属性,请使用[]方括号表示法。当您的属性名称是简单的JavaScript标识符时,请使用.

将您的代码更改为:

interestListsObj[interestList[i].machine_name] =  interestList[i].name;