很难用谷歌搜索这个问题,因为我不确定这些概念叫什么,并且所有“两个数组/组的组合”SO 帖子都没有给我我期望的输出。
数组示例:
var array1 = ['Bob', 'Tina'];
var array2 = [0, 100];
我可以通过两个数组的嵌套循环找到可能的组合。但这会给我这样的输出:
var array1 = ['Bob', 'Tina'];
var array2 = [0, 100];
var options = []
array1.forEach(function (name) {
array2.forEach(function (number) {
options.push([name, number])
})
})
console.log(options);
> [ [ 'Bob', 0 ], [ 'Bob', 100 ], [ 'Tina', 0 ], [ 'Tina', 100 ] ]
这篇文章( Creating Combinations in JavaScript )给了我上面的输出
但是我真正想要的会给我这样的安排/组合:
[
[['Bob', 0], ['Tina', 0]],
[['Bob', 0], ['Tina', 100]],
[['Bob', 100], ['Tina', 0]],
[['Bob', 100], ['Tina', 100]]
]
并且它需要能够扩展更长的数组,但 2x2 是最简单的示例。
这里的笛卡尔示例( Matrix combinations of two arrays in javascript )也给了我分解的字符串,而不是相关的排列:
[ { '0': 'B', '1': 'o', '2': 'b' },
{ '0': 'B', '1': 'o', '2': 'b' },
{ '0': 'T', '1': 'i', '2': 'n', '3': 'a' },
{ '0': 'T', '1': 'i', '2': 'n', '3': 'a' } ]
我一直在通过谷歌等搜索,但我遇到了障碍,因为我不确定我真正在寻找什么。
最佳答案
我希望这可以帮助您获得实际的组合:
var array1 = ['Bob', 'Tina'];
var array2 = [0, 100];
var resultArray = []
for (var i = 0; i < array1.length; i++) {
for (var j = 0; j < array2.length; j++) {
var tempArray = [];
tempArray.push(array1[i]);
tempArray.push(array2[j]);
resultArray.push(tempArray);
}
}
for (var i = 0; i < array2.length; i++) {
for (var j = 0; j < array1.length; j++) {
var tempArray = [];
tempArray.push(array1[j]);
tempArray.push(array2[i]);
resultArray.push(tempArray);
}
}
console.log(resultArray);
关于javascript - 找到两个数组的可用组合(排列?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39417399/