【发布时间】:2010-03-13 07:46:39
【问题描述】:
我有一个对象,我正试图从另一个对象中填充(也就是说,遍历返回对象以生成一个只包含原始选定值的对象)。我的代码如下所示:
var collect = {};
function getHistoricalData(username){
$.getJSON("http://url/" + username + ".json?params",
function(data){
for (var i=0; i < data.length; i++) {
console.log(i);
collect = { i : {text : data[i].text}};
$("#wrap").append("<span>" + data[i].text + "</span><br />");
};
console.log(collect);
});
}
所以我正在使用 Firebug 进行调试,这就是我所知道的:
- JSON 对象完好无损
-
console.log(i);按预期显示数字 1-20 -
当我最后记录
collect对象时,它的结构是这样的:var collect = { i : {text : "the last iteration's text"}};所以增量器正在“应用”到 data[i].text 并返回文本值,但它并没有按照我的预期做,即创建了 collect 对象的新成员;它只是覆盖
collect.i20 次,并留下最后一个值。
我需要使用不同的语法来分配对象成员吗?我尝试了collect.i.text = 和collect[i].text =,错误是我尝试的任何内容都未定义。
我很想知道这里发生了什么,所以解释越深入越好。
谢谢!
【问题讨论】:
标签: javascript json