Итак, я хотел бы напечатать часть кода (в Node.js), которая выдала бы мне все варианты объектов внутри объекта JSON. Каждая перестановка должна быть уникальной (две перестановки идентичны, если в них есть абсолютно одинаковые объекты, независимо от их положения). Мой объект JSON выглядит так:
[
{
"ID": "5465464",
"e-mail": "something@gmail.com",
"name": "John"
},
{
"ID": "5433364",
"e-mail": "something2@gmail.com",
"name": "Nick"
},
{
"ID": "5465244",
"e-mail": "something3@gmail.com",
"name": "George"
},
{
"ID": "5464874",
"e-mail": "something4@gmail.com",
"name": "Rick"
},
{
"ID": "5442164",
"e-mail": "something5@gmail.com",
"name": "Wayne"
}
]
Таким образом, вывод должен дать мне все возможные комбинации всех объектов (по 3 объекта в комбинации), и он должен выглядеть примерно так:
[
"PERMUTATION1":[
{
"ID": "5465464",
"e-mail": "something@gmail.com",
"name": "John"
},
{
"ID": "5433364",
"e-mail": "something2@gmail.com",
"name": "Nick"
},
{
"ID": "5465244",
"e-mail": "something3@gmail.com",
"name": "George"
}
],
"PERMUTATION2":[
{
"ID": "5465464",
"e-mail": "something@gmail.com",
"name": "John"
},
{
"ID": "5464874",
"e-mail": "something4@gmail.com",
"name": "Rick"
},
{
"ID": "5465244",
"e-mail": "something3@gmail.com",
"name": "George"
}
],
"PERMUTATION3":[
{
"ID": "5465464",
"e-mail": "something@gmail.com",
"name": "John"
},
{
"ID": "5465464",
"e-mail": "something@gmail.com",
"name": "John"
},
{
"ID": "5465464",
"e-mail": "something@gmail.com",
"name": "John"
}
],...
]
Обратите внимание, что один объект может появляться несколько раз (до 3) в РАЗРЕШЕНИИ, но две разные перестановки не могут иметь в себе одни и те же элементы (положение элементов не имеет значения). Я пытался решить эту проблему с помощью пузырьковой сортировки и других алгоритмов сортировки, но пока безуспешно. Если у вас есть идеи, как это сделать, пожалуйста, дайте мне знать.