Вы можете взять Map
, сгруппировать объекты одного типа / позиции и отфильтровать сгруппированный результат для длины больше единицы.
var data = [{ type: 'a', position: 1 }, { type: 'b', position: 1 }, { type: 'a', position: 1 }, { type:'a', position: 2 }, { type: 'b', position: 2 }, { type: 'c', position: 1 }, { type:'c', position: 1 }],
duplicates = Array
.from(
data
.reduce((m, o) => {
var key = ['type', 'position'].map(k => o[k]).join('|');
return m.set(key, (m.get(key) || []).concat(o));
}, new Map)
.values()
)
.filter(({ length }) => length > 1);
console.log(duplicates);