Javascript JSON对象仅显示第一个键,忽略其余键
我以前从未遇到过这种情况,但下面的示例显示了JSON结构,但是它只将长度返回为1,并且不会显示0之后的任何对象 我真的不知道这里出了什么问题,希望有人看到我不知道的东西。提前谢谢你 值得一提的是,以下代码:Javascript JSON对象仅显示第一个键,忽略其余键,javascript,arrays,json,loops,Javascript,Arrays,Json,Loops,我以前从未遇到过这种情况,但下面的示例显示了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.
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
将是数组索引。json。。。对象长度?请添加真实数据。需要查看代码。可能是打字错误。myTasks
是什么?你的意思是记录事件吗?添加到代码@ShakilAhmed中。。。不管我做什么,它都不会循环通过第一个对象。@chazsolo,是的,这应该是事件。试图简化发布代码。