0

在以下 Javascript (JSON) 数组中,以下代码将遍历员工,但我如何使用 Javascript 或 jQuery/javascript 解决 1) 个人员工编号、2) 任务或 3) 站点?

$.each(mySchedule, function(i, obj) {
  console.log(obj.employees);
});
var mySchedule = 
  {
    "schedule": {
      "employees": [{
        "employee": "1000",
        "tasks": [{
          "task1": {
            "site":"McDo",
            "from":"0900",
            "to":"1000"
          }
        },
        {
          "task2": {
            "site":"McDo",
            "from":"0900",
            "to":"1000"
          }
        }]
      },
      {
        "employee": "2000",
        "tasks": [{
          "task3": {
            "site":"HJ",
            "from":"0900",
            "to":"1000"
          }
        },
        {
          "task4": {
            "site":"KFC",
            "from":"0900",
            "to":"1000"
          }
        }]
      }]
    }
  }

(编辑)我乐观地希望这样的事情会奏效。

$.each(mySchedule, function(i, obj) {               
     console.log(obj.site);                     
});
4

2 回答 2

3

您的代码当前遍历计划,而不是员工...

$.each(mySchedule.schedule.employees, function(i, obj) {               
     console.log(obj.tasks);  
     console.log(obj.employee);                      
});

您必须逐个遍历元素才能获得所需的数据。对于站点,您需要访问任务,因为它是任务的属性。任务在员工的财产任务中,员工在财产员工中,这又在计划中......

于 2013-05-01T10:53:17.753 回答
2

您应该稍微修改数据结构以直接解决员工问题,而无需遍历他们。

一个可能的例子是:

<script type="text/javascript">

var s = {
"schedule": {
  "employees": {
    "1000": {
        "tasks": [{
          "task1": {
            "site":"McDo",
            "from":"0900",
            "to":"1000"
          }
        },
        {
          "task2": {
            "site":"McDo",
            "from":"0900",
            "to":"1000"
          }
        }]
    },
    "2000": {
        "tasks": [{
          "task1": {
            "site":"McDo",
            "from":"0900",
            "to":"1000"
          }
        },
        {
          "task2": {
            "site":"McDo",
            "from":"0900",
            "to":"1000"
          }
        }]
    }
  }
}
}

console.log(s["schedule"]["employees"]["1000"]);
console.log(s["schedule"]["employees"]["2000"]);

</script>

更新:

OP问他如何获得员工名单,所以这里是:

console.log(s["schedule"]["employees"]);

上面的代码将返回员工列表作为键,并将随附的任务作为值。

于 2013-05-01T11:08:51.890 回答