IK
У нас есть первый пазл.
Мы циклом проходимся по пазлам и ищем puzzles.edges[key].edgeTypeId === первому и puzzles.edges[key].type !== первому.
Добавляем id найденного в итоговый массив. Потом сравниваем следующий со вторым и так далее? В правильную сторону я мыслю или все гораздо проще?