2014-05-03 51 views
0

我有一個包含幾百個對象文字的數組。有沒有辦法查詢或匹配特定的一個,而不必遍歷整個數組。查詢javascript對象文字集合中的特定項目

因此,例如,給出:

var collection = [ { "id" : "A11", "text": "the text for A11", "data" : "12345" }, 
        { "id" : "B14", "text": "the text for B14", "data" : "16542" }, 
        { "id" : "C97", "text": "the text for C97", "data" : "54321" } ] 

有沒有一種方法來檢索與「ID」 ==「B14」的項目,而無需通過整個集合循環?

+0

如果你能保證你的陣列是由你正在尋找的關鍵排序,你可以做一個二進制搜索。儘管如此,@ adv12的答案會更好地表現出你可以做到的事情。 –

回答

1

如果您的容器是通過子對象ID而不是數組鍵入的對象,則可以執行快速查找,如collection["B14"]。根據你的情況,從數組中生成這樣一個查找對象並使用它可能是值得的。

例子:

var collection = { 
        "A11": { "id" : "A11", "text": "the text for A11", "data" : "12345" }, 
        "B14": { "id" : "B14", "text": "the text for B14", "data" : "16542" }, 
        "C97": { "id" : "C97", "text": "the text for C97", "data" : "54321" } 
       } 
+0

謝謝,我明白了。我將以不同的方式創建集合,這將變得更加容易。 – trashrobber