获取数组中元素的所有组合

时间:2013-12-14 13:17:51

标签: javascript algorithm

我需要一种算法来获取多维数组值中所有可能的元素组合。类似于排列的东西。

数组中的循环必须双向。

例如,

var arr= [[1],[2],[3],[4]];

会产生

的结果

[1,2] [1,3] [2,3] [3,4] [4,3] [3,2] [2,1]

1 个答案:

答案 0 :(得分:1)

var arr = [1, 2, 3, 4], result = [];
for (var i = 0; i < arr.length; i += 1) {
    for (var j = 0; j < arr.length; j += 1) {
        if (i !== j) {
            result.push([arr[i], arr[j]]);
        }
    }
}
console.log(result);

<强>输出

[ [ 1, 2 ],
  [ 1, 3 ],
  [ 1, 4 ],
  [ 2, 1 ],
  [ 2, 3 ],
  [ 2, 4 ],
  [ 3, 1 ],
  [ 3, 2 ],
  [ 3, 4 ],
  [ 4, 1 ],
  [ 4, 2 ],
  [ 4, 3 ] ]