Javascript函数推送问题

时间:2010-03-29 10:47:12

标签: javascript list function object

我遵循JS功能。

responseData:function(resp){
    this.jsondata = eval('(' + resp + ')');
    this.propList = [];
    for (var i = 0;i<this.jsondata.length;i++) {
        for (obj in this.jsondata[i]) {
            alert(obj); //shows the property name of obj
            this.propList.push({
                obj : this.jsondata[i][obj] //insert only simple obj string
            });
        }
    }
    return this.propList;
}

我想在我的propList中插入属性名称和值,但是插入属性名称此函数会将简单的'obj'作为字符串插入。我做错了什么?

问候 斯蒂芬

1 个答案:

答案 0 :(得分:4)

将循环更改为,

    for (obj in this.jsondata[i]) {
        alert(obj); //shows the property name of obj
        var item = {};
        item[obj] = this.jsondata[i][obj];
        this.propList.push(item);
    }

使用object-literal创建对象时,属性名称不会被计算为变量。要使用变量当前值指定对象属性的名称,必须使用obj[variable]格式。这将在obj中创建一个属性,其名称将与当前值variable相同。