Показать сообщение отдельно
  #1 (permalink)  
Старый 19.09.2014, 22:46
Новичок на форуме
Отправить личное сообщение для webphp Посмотреть профиль Найти все сообщения от webphp
 
Регистрация: 19.09.2014
Сообщений: 7

Очистить массив от дубликатов по двум полям
Помогите решить задачу, я что то разобраться никак не могу.
Есть большой массив объектов, в которых расположены два ключа, group и version
Необходимо перебрать массив удалить все дубликаты по двум значениям, т.е. связка group && version

Код:
[ { group: 'group-sedan', version: 'iv' },
  { group: 'group-sedan', version: 'iv' },
  { group: 'group-wagon_5', version: 'iv' },
  { group: 'group-wagon_5', version: 'iv' },
  { group: 'group-sedan', version: 'iii' },
  { group: 'group-sedan', version: 'iii' },
  { group: 'group-wagon_5', version: 'iii' },
  { group: 'group-wagon_5', version: 'iii' },
  { group: 'group-wagon_5', version: 'ii' },
  { group: 'group-wagon_5', version: 'ii' },
  { group: 'group-sedan', version: 'ii' },
  { group: 'group-sedan', version: 'ii' },
  { group: 'group-coupe', version: 'i' },
  { group: 'group-coupe', version: 'i' },
  { group: 'group-sedan', 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' } ]
Пробовал так

var clean = arr.filter(function(obj, i) {
		return (obj.version in used && obj.group in used) ? 0 : (used[obj.version] = 1) && (used[obj.group] = 1);
	});
	
	console.log(clean);


Но что то не правильно.
Ответить с цитированием