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

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 に答える