2013-10-02 16 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的数据。