Переложить данные в двумерный массив

Рейтинг: 0Ответов: 1Опубликовано: 20.09.2014

Не могу разобраться, как перебрать такой массив

[ { group: 'group-sedan', version: 'iv' },
  { group: 'group-wagon_5', version: 'iv' },
  { group: 'group-sedan', version: 'iii' },
  { group: 'group-wagon_5', version: 'iii' },
  { group: 'group-wagon_5', version: 'ii' },
  { group: 'group-sedan', version: 'ii' },
  { group: 'group-coupe', version: 'i' },
  { group: 'group-sedan', version: 'i' } ]

чтобы получить двумерный массив такого вида:

[ 
  [{ group: 'group-sedan', version: 'iv' },
  { group: 'group-wagon_5', version: 'iv' }],

  [{ group: 'group-sedan', version: 'iii' },
  { group: 'group-wagon_5', version: 'iii' }],

  [{ group: 'group-wagon_5', version: 'ii' },
  { group: 'group-sedan', version: 'ii' }],

  [{ group: 'group-coupe', version: 'i' },
  { group: 'group-sedan', version: 'i' }]
]

Разложить его по полю version?

Ответы

▲ 1Принят
var sorted = {}
for (var i = 0; i < data.length; i++) {
    var item = data[i];
    var version = item.version;
    if (!(version in sorted)) {
        sorted[version] = [];
    }
    sorted[version].push(item);
}