我需要一种算法来获取多维数组值中所有可能的元素组合。类似于排列的东西。
数组中的循环必须双向。
例如,
var arr= [[1],[2],[3],[4]];
会产生
的结果 [1,2]
[1,3]
[2,3]
[3,4]
[4,3]
[3,2]
[2,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 ] ]