如何獲得數組中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