2013-05-01 3 views
0

В следующем массиве Javascript (JSON) следующий код будет выполнять итерацию через сотрудников, но как я могу обратиться к 1) номеру индивидуального сотрудника, 2) задачам или 3) сайтам, используя Javascript или JQuery/JavaScript?Javascript array - итерация через элементы данных

$.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" 
      } 
     }] 
     }] 
    } 
    } 

(EDIT) Я с оптимизмом надеялся, что что-то подобное будет работать.

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

Какая у вас проблема? Вы что-то пробовали? –

+0

См. [Работа с объектами] (https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects). –

+0

посмотрите пожалуйста другой ответ. Пользователь выяснил, что я просил, и дал очень краткий ответ. Если бы я хотел, чтобы руководство для объектов javascript, я бы google для него. – Abe

ответ

3

Ваш код в настоящее время перебирает графику, а не сотрудник ...

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

Вы должны пройти через элементы один за другим, чтобы достичь необходимых данных. Для сайта вам нужно выполнить задачу, так как это свойство из задачи. Задача заключается в задачах работы работника, а работник находится в собственности сотрудников, который, в свою очередь, расписано ...

+0

красивый ответ! – Abe

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:

ОП спросил, как он может получить список сотрудников, так вот он идет:

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

Вышеупомянутые код вернет список сотрудников в качестве ключей и сопровождающих задач в качестве значений.

+0

да, тот, который делает с! Не нужно ли говорить: «сотрудники»: [{у меня много сотрудников? –

+0

в этой версии, как я могу получить список номеров сотрудников? \t \t \t $ .each (mySchedule.schedule, функция (я, 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

+0

@ Я обновил ответ, чтобы добавить эту информацию. –

Смежные вопросы