如何通过属性查找数组中的对象?

Phi*_*hil 0 javascript jquery

我从PHP脚本返回以下数组.

$data =  [
    {
        "id": "1",
        "created_at": "2015-01-02 15:17:29",
        "updated_at": "2015-01-02 15:17:29",
        "name": "Minecraft",
        "description": "",
        "location": "ideaLab",
        "cost": "20.00",
        "min_age": "7",
        "max_age": null,
        "start_date": "2014-11-06",
        "end_date": "2014-12-11",
        "start_time": "16:30:00",
        "end_time": "17:30:00",
        "registration_start_date": "2014-10-28",
        "registration_end_date": "0000-00-00",
        "program_id": "1",
        "max_attendees": "12"
    },
    {
        "id": "2",
        "created_at": "2015-01-02 15:17:29",
        "updated_at": "2015-01-02 15:17:29",
        "name": "Mini Makers",
        "description": "",
        "location": "ideaLab",
        "cost": "18.00",
        "min_age": "9",
        "max_age": "7",
        "start_date": "2014-11-04",
        "end_date": "2014-12-09",
        "start_time": "16:30:00",
        "end_time": "17:30:00",
        "registration_start_date": "2014-10-28",
        "registration_end_date": "0000-00-00",
        "program_id": "2",
        "max_attendees": "20"
    }
];
Run Code Online (Sandbox Code Playgroud)

如何选择对象id?类似于SQL的等价物 $obj = select * where id=$id如果有意义的话.

fca*_*ran 5

您可以使用接受idas参数的泛型函数并返回对象(如果id存在)

function getObjectById(id) {
   for (var i = 0; i < $data.length; i++) {
      if ($data[i]['id'] === id) {
         return $data[i];
      }
   }
   return {};
}
Run Code Online (Sandbox Code Playgroud)

但是如果你的输出正好是你发布的,并且你没有id在序列中遗漏,那么你可以将函数的主体减少到

return (id > 0 && id <= $data.length) ? $data[id - 1] : {}
Run Code Online (Sandbox Code Playgroud)

(在这种情况下,我假设你传递一个整数id)