Создать новый массив из существующего массива с помощью jquery

0

Я обрисовал jquery, который выглядит так

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

И мне нужно извлечь все идентификаторы, у которых одинаковые apx.

  • 0
    вы можете сделать сортировку
  • 0
    Вы имеете в виду, где 2 или более элементов имеют один и тот же apx?
Показать ещё 3 комментария
Теги:
object
arrays

3 ответа

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)

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 будет иметь новый массив ur.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню