在下面的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);
});
答案 0 :(得分:3)
您的代码目前正在按计划进行迭代,而非员工......
$.each(mySchedule.schedule.employees, function(i, obj) {
console.log(obj.tasks);
console.log(obj.employee);
});
您必须逐个浏览元素才能获得所需的数据。对于站点,您需要完成任务,就像任务中的属性一样。任务是在员工的财产任务中,员工在财产员工中,而这又是按计划进行的......
答案 1 :(得分: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"]);
上述代码会将员工列表作为键返回,并将随附的任务作为值返回。