使用jquery从现有数组创建新数组

时间:2014-02-25 09:12:54

标签: jquery arrays object

我在jquery中看起来像这样的

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

我需要提取所有具有相同apx的id。

3 个答案:

答案 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); 

jsFiddle