2013-05-01 122 views
0

在以下Javascript(JSON)数组中,以下代码将遍历员工,但我如何处理1)个体员工编号,2)任务或3)网站,使用Javascript或jQuery的/ JavaScript的?Javascript数组 - 遍历数据元素

$.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

你有什么问题?你尝试过什么吗? – 2013-05-01 10:51:05

+0

请参阅[使用对象](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects)。 – 2013-05-01 10:51:40

+0

请参阅其他答案。用户已经知道我在问什么,并提供了非常简洁的答案。如果我想要JavaScript对象的手册,我会为它的谷歌。 – Abe 2013-05-01 11:07:36

回答

3

你目前的代码遍历时间表,而不是员工...

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

你必须通过一个元素一个步行到达到你所需要的数据。对于该网站,您需要按照来自任务的属性来完成任务。任务是在员工的财产任务中,而员工在财产员工中依次按计划进行......

+0

美丽的答案! – Abe 2013-05-01 11:02:17

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> 

UPDATE:

的OP问他怎么能得到员工的名单,所以这里有云:

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

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

+0

是的,这使得从此!我不需要说:“员工”:[{因为我有很多员工? – 2013-05-01 11:11:44

+0

在这个版本中,我如何获得员工号码列表? \t \t \t。每$(mySchedule.schedule,功能(I,OBJ){\t \t \t \t \t \t \t \t \t \t \t \t的console.log(obj.employees); \t \t \t \t \t \t \t \t \t \t \t \t \t}); – Abe 2013-05-01 11:23:58

+0

@Abe我已经更新了答案以添加该信息。 – 2013-05-01 11:28:25