2013-01-24 58 views
3

嗯嗯,我該怎麼說這個。讓我們開始與我的對象的示例:javascript/jquery在多維json對象中找到id號,並使用id號作爲對象的對象本身

"data": { 
    "events": [ 
     { 
      "event_id": 12345, 
      "event_ts_begin": 1358931738000, 
      "event_ts_end": 1358931748000, 
      "event_severity": "minor", 
      "event_code": 23, 
      "event_desc": "Completed", 
      "event_type": "normal", 
      "event_text": "Completed, blah on blah blah blah..." 
     }, 
     { 
      "event_id": 12346, 
      "event_ts_begin": 1358931738000, 
      "event_ts_end": 1358931748000, 
      "event_severity": "minor", 
      "event_code": 23, 
      "event_desc": "Completed", 
      "event_type": "normal", 
      "event_text": "Completed, blah on blah blah blah..." 
     }, 
     { 
      "event_id": 12347, 
      "event_ts_begin": 1358931738000, 
      "event_ts_end": 1358931748000, 
      "event_severity": "minor", 
      "event_code": 23, 
      "event_desc": "Completed", 
      "event_type": "normal", 
      "event_text": "Completed, blah on blah blah blah..." 
     } 
    ] 
} 

我想要做的是一些如何找出event_id 12346在這個多維對象,並使用特定的數據集本身的對象。以某種方式取出後限定一個臨時變量作爲對象,因此這將是等於:

var tempObj = { 
      "event_id": 12346, 
      "event_ts_begin": 1358931738000, 
      "event_ts_end": 1358931748000, 
      "event_severity": "minor", 
      "event_code": 23, 
      "event_desc": "Completed", 
      "event_type": "normal", 
      "event_text": "Completed, blah on blah blah blah..." 
     }; 

上面在它的多個對象的樣品物體,可以在某些情況下1,000+對象或多個。因此,循環它們並重建選項聽起來不是一個好主意。所以我希望我能得到一些反饋來提出一個理智的解決方案。

有沒有一種方法可以找到該特定對象的特定索引號,以將其用作定義臨時變量的手段?

+0

很抱歉,但你必須循環:(查了一些[phpjs.org(http://phpjs.org/functions/array_intersect/)有關數組得到一個優化的代碼。 –

回答

4

您可以使用jQuery.grep函數查找數組中的元素。

var tmpObj = $.grep(data.events, function(obj){ 
    return obj.event_id == '12347' 
}); 
+0

爲什麼這個答案不被接受?非常優雅! –