我正在使用一个笛卡尔积函数,给定[1],[1,2,3],[1,2,3]
返回9个组合:
[ [ 1, 1, 1 ],
[ 1, 2, 1 ],
[ 1, 3, 1 ],
[ 1, 1, 2 ],
[ 1, 2, 2 ],
[ 1, 3, 2 ],
[ 1, 1, 3 ],
[ 1, 2, 3 ],
[ 1, 3, 3 ] ]
但是我需要删除那些具有相同项的元素,无论它们的顺序如何,所以对于我来说[ 1, 3, 1 ]
和[ 1, 1, 3 ]
是相同的。结果应该包含6个元素:
[ [ 1, 1, 1 ],
[ 1, 2, 1 ],
[ 1, 3, 1 ],
[ 1, 2, 2 ],
[ 1, 3, 2 ],
[ 1, 3, 3 ] ]
我可以编写一个使用_.xor
比较所有可能的配对的函数,但对于更大的数字,这可能非常低效。在Javascript中是否有一种好的方法来解决这个问题?有没有一种有效的方法来比较所有可能的配对或者去重后的笛卡尔积算法?
[[2, 2, 2], [2, 2, 3], [2, 3, 3], [3, 3, 3]]
不应该被包含? - rici[1],[1, 2, 4],[2, 3, 4]
? - rici