【问题标题】:JSON Object is only showing the first key, ignoring the rest [closed]JSON对象只显示第一个键,忽略其余的[关闭]
【发布时间】:2018-09-07 19:51:44
【问题描述】:

我以前从未发生过这种情况,但下面的示例显示了 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);
        }

【问题讨论】:

  • json ...对象...长度?请添加真实数据。
  • 需要看代码。可能有些错别字。
  • myTasks 是什么?您的意思是登录events
  • 在代码中添加了@ShakilAhmed ...无论我做什么,它都不会遍历第一个对象之后的任何内容。
  • @chazsolo,是的,这应该是事件。试图简化发布代码。

标签: javascript arrays json loops


【解决方案1】:

您将 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 将是数组索引。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 2015-09-11
    • 2020-04-04
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多