2013-10-02 37 views
0

我有一個json數據。Jquery代碼從數組中找到重複的信息

data ={{"id":"10","name":"test"},{"id":"10","name":"test1"},{"id":"11","name":"tsst"},{"id":"41","name":"jhkj"},{"id":"11","name":"yuyyu"},} 

從JSON數據我正在讀取的ID從數據庫表中獲取location如下

data.each(function(index) { 
    var id = index.id //gets 10 
         //again gets 10 and again doing db operations for same id value 
    //db operations 
     //get location details from db using this id  
    // operations after getting locations.................... 

    }); 

我proble是id重複即10,10,11,41 ,11。所以呼籲db操作重複值也。我如何通過調用數據庫操作重複的id值來避免。

回答

3

嘗試

var temp = {}; 
for(var i = 0; i < data.length ; i++){ 
    var obj = data[i]; 
    if(temp[obj.id] >= 0){ 
     data.splice(i, 1); 
     i--; 
    } 
    temp[obj.id] = i; 
} 
console.log(data) 

演示:Fiddle

2

檢查重複的ID可能會解決您的問題。

例如:

var dup= {}; 
data.each(function(index) { 
    var id = index.id; 
    dup.push(id); 
    if (dup[id]) 
     $(this).remove(); //OR DO nothing 
    else 
    //Your DB Operation 

}); 
+0

您忘記從'data'添加測試ID的到'dup'陣列。 – stUrb

+0

@stUrb謝謝我得到它並修復它。 –

0

我認爲你必須避免調用數據庫操作的迴路中的所有ID。只需將所有內容傳遞給後端,並在一次數據庫操作中獲取所需的所有id的數據。