Моя цель - создать часть кода, которая будет генерировать все возможные комбинации без дубликатов (комбинаций с одинаковыми элементами, независимо от их последовательности) с данными из файла JSON.Мой файл JSON выглядит следующим образом:
[
{
"COLLECTION": "Assault",
"WEAPON": "SG 553",
"SKIN": "Tornado",
"GRADE": "Consumer Grade"
},
{
"COLLECTION": "Assault",
"WEAPON": "UMP-45",
"SKIN": "Caramel",
"GRADE": "Consumer Grade"
},
{
"COLLECTION": "Vertigo",
"WEAPON": "Five-SeveN",
"SKIN": "Candy Apple ",
"GRADE": "Industrial Grade"
}, ...
]
Комбинации будут создаваться следующим образом:
[
"COMBINATION 1":[
{
"COLLECTION": "Assault",
"WEAPON": "SG 553",
"SKIN": "Tornado",
"GRADE": "Consumer Grade"
},
{
"COLLECTION": "Assault",
"WEAPON": "UMP-45",
"SKIN": "Caramel",
"GRADE": "Consumer Grade"
},
{
"COLLECTION": "Assault",
"WEAPON": "Five-SeveN",
"SKIN": "Candy Apple ",
"GRADE": "Industrial Grade"
}, ...
],
"COMBINATION 2":[
{
"COLLECTION": "Assault",
"WEAPON": "SG 553",
"SKIN": "Tornado",
"GRADE": "Consumer Grade"
},
{
"COLLECTION": "Aztec",
"WEAPON": "M4A4",
"SKIN": "Jungle Tiger",
"GRADE": "Industrial Grade"
},
{
"COLLECTION": "Aztec",
"WEAPON": "Tec-9",
"SKIN": "Ossified",
"GRADE": "Mil-Spec"
}, ...
],...
]
Обратите внимание, что в этом случае обе комбинации имеют одинаковые элементы и поэтому не должныбыть отмеченным дважды.Это означает, что до тех пор, пока в комбинации есть элементы, которые совпадают с другой возможной комбинацией (независимо от того, в какой последовательности они находятся), она считается одной комбинацией (каждая комбинация будет иметь 10 элементов и будет отличаться от другой на основеЗначения атрибута "SKIN"):
[
"COMBINATION 1":[
{
"COLLECTION": "Vertigo",
"WEAPON": "SG 553",
"SKIN": "Tornado",
"GRADE": "Consumer Grade"
},
{
"COLLECTION": "Assault",
"WEAPON": "UMP-45",
"SKIN": "Caramel",
"GRADE": "Consumer Grade"
},
{
"COLLECTION": "Assault",
"WEAPON": "Five-SeveN",
"SKIN": "Candy Apple ",
"GRADE": "Industrial Grade"
},...
],
"COMBINATION 2":[
{
"COLLECTION": "Assault",
"WEAPON": "Five-SeveN",
"SKIN": "Candy Apple ",
"GRADE": "Industrial Grade"
},
{
"COLLECTION": "Vertigo",
"WEAPON": "SG 553",
"SKIN": "Tornado",
"GRADE": "Consumer Grade"
},
{
"COLLECTION": "Assault",
"WEAPON": "UMP-45",
"SKIN": "Caramel",
"GRADE": "Consumer Grade"
},...
],...
Также обратите внимание, что один и тот же элемент может появляться в комбинации несколько раз (до 10) и что я работаю с файлом JSON, содержащим около 1500 элементов, поэтомуэффективность является ключевым.Подводя итог, можно сказать, что конечный продукт должен выглядеть примерно так: https://textuploader.com/1du6o
Это тоже своего рода похожая проблема, но менее сложная: Перестановки в JavaScript?
Я пытался разобраться с помощью пузырьковой сортировки и тому подобного, но пока не удалось.Если у вас есть идеи, как это сделать, я бы хотел их услышать.