如何获得数组中2个元素的每种可能组合?获取元素的所有可能组合
例如:
[
1,
2,
3,
4
]
becomes
[
[1, 2],
[1, 3],
[1, 4],
[2, 1],
[2, 3],
[2, 4],
[3, 1],
[3, 2],
[3, 4],
[4, 1],
[4, 2],
[4, 3]
]
这个答案使用蛮力,但有没有用Ramda和或钻营的功能呢?
var arr = [1, 2, 3, 4],
result = [];
for(var i=0; i<arr.length; ++i)
for(var j=0; j<arr.length; ++j)
if(i !== j)
result.push([arr[i], arr[j]]);
它很优雅,但它返回与请求不同的东西,因为它重复了这些元素。从列表中得出的n元素序列,它和我所看到的一样优雅 –
你是对的,斯科特这个答案是错误的,但是很有趣:) – davidchambers
这个过滤器可以移除任何东西重复 – sa555