我遵循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'作为字符串插入。我做错了什么?
问候 斯蒂芬
答案 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
相同。