我在jquery中看起来像这样的
var occupy = [{apx: "45.406/19.292", id: 1},{apx: "45.406/19.292", id: 2},...]
我需要提取所有具有相同apx的id。
答案 0 :(得分: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
对象将包含按id
分组的apx
数组。
jsfiddle:http://jsfiddle.net/C7szw/(您需要查看控制台窗口以查看result
)
答案 1 :(得分: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>
ids数组将包含新数组。
答案 2 :(得分: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);