我之前从未遇到过这种情况,但下面的示例显示了JSON结构,但它只返回1的长度,并且在0之后不会显示任何对象。
我真的不知道这里有什么不对,希望有人看到我不知道的事情。先感谢您!
对于它的价值,这里是代码:
var count = Object.keys(r.tasks).length;
var i = 0;
$.each(r.tasks[userid],function(k,v){
var day = new Date(v.day);
var data = {
id: k,
d: day,
taskID: parseInt(v.task_id),
location: v.location,
address: v.address,
blurb: v.blurb,
prettyDate: v.pretty_date,
techStatus: v.tech_status,
tags: v.all_tags,
taskTotal: v.task_total
};
returnTasks.push(data);
i++;
if(i == count){
loadDay(returnTasks);
}
});
function loadDay(events){
console.log(events);
console.log(events.length);
}
你将count
设置为错误的长度。您正在循环访问r.tasks[userid]
,但是您将其设置为r.tasks
中的属性数(即不同用户的数量,而不是此用户的任务数)。它应该是:
var count = Object.keys(r.tasks[userid]).length;
如果r.tasks[userid]
是一个数组,你不需要使用Object.keys()
,只需使用
var count = r.tasks[userid].length;
在这种情况下,您也不需要i
变量,因为k
将是数组索引。