我循环遍历数组response
,我想将一些值放入对象data
,但我的方法不起作用("数据[i]未定义")。
var data = {},
i = 0;
$(response).each(function(){
data[i].title = response.title; // This does not work
data[i].id = response.id;
i++;
}
我希望生成的对象data
看起来像这样:
{
0: {
title: "First title",
id: "First id"
},
1: {
title: "Second title",
id: "Second id"
},
}
我怎样才能做到这一点?
答案 0 :(得分:1)
您没有引用响应的每个索引,而是引用数组/对象的属性
$(response).each(function(index){
data[i].title = response[index].title;
data[i].id = response[index].id;
i++;
});
答案 1 :(得分:1)
尝试:
var data = {},
i = 0;
$(response).each(function(){
data[i] = {}; // Initialize an object first before assigning values: data[i] = {};.
data[i].title = this.title; //Use this instead of response
data[i].id = this.id;
i++;
});
答案 2 :(得分:0)
试试:
var data = [];
$(response).each(function(index, element){
data.push({
title: element.title,
id: element.id
});
}
此代码段将创建一个包含对象的数组,因此您可以使用以下命令访问它们:
data[0]; // [1], [2] ...