2014-02-25 27 views
0

我有jQuery的編曲,看起來像這樣建立從現有陣列新數組使用jQuery

var occupy = [{apx: "45.406/19.292", id: 1},{apx: "45.406/19.292", id: 2},...] 

,我需要提取所有的ID誰擁有相同的APX。

+0

你可以做排序 –

+0

你的意思,其中2個或多個項目具有相同APX? – Johan

+0

是的,其中2個或更多 –

回答

0

您可以使用純JavaScript要做到這一點,是這樣的:

var occupy = [{apx: "45.406/19.292", id: 1},{apx: "45.406/19.292", id: 2}]; 

var result = []; 

for (var idx = 0; idx < occupy.length; idx++){ 
    var key = occupy[idx].apx; 
    if (!result[key]){ 
     result[key] = []; 
    } 

    result[key].push(occupy[idx].id); 
} 

console.log(result); 

result對象將包含其apx分組的id陣列。

的jsfiddle:http://jsfiddle.net/C7szw/(你需要看一下控制檯窗口看到result

0

試試這個..

<script> 
     var occupy = [{apx: "45.406/19.292", id: 1},{apx: "45.406/19.292", id: 2}]; 
     var apx =[] 
     $.each(occupy, function (index, item) { 
      if(apx.indexOf(item["apx"])==-1) 
       apx.push(item["apx"]); 
     }); 
     var ids =[]; 
     var temp; 
     $.each(occupy, function (i, item) { 
      var it = item; 
      $.each(apx,function(j,a){ 
       if(a===item["apx"]) 
        return ids.push(occupy[i]["id"]); 
      }); 
     }); 
</script> 

的ID陣列將有烏爾新的數組。

0

下面是使用jQuery的grep的一個例子:

var test1=[{apx: "45.406/19.292", id: 1},{apx: "45.406/19.292", id: 2},{apx: "45.406/19.300",  id: 3}] 
var found; 
found= $.grep(test1,function(o,i) 
      { 
       for(var ii=0;ii< test1.length;ii++) 
       { 
        return o.apx == test1[ii].apx; 
       } 

      }) 
console.log(found); 

jsFiddle