【发布时间】:2016-09-09 18:07:44
【问题描述】:
很难在谷歌上搜索,因为我不确定这些概念叫什么,而且所有“两个数组/组的组合”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' } ]
我一直在浏览 google 和 SO,但我遇到了障碍,因为我不确定我真正在寻找什么。
【问题讨论】:
-
某种形式的遍历两个数组是您将如何做到这一点的方式,但您需要展示到目前为止您已经尝试过的内容。见How to Ask 和minimal reproducible example
-
我建议手动使用不同的输入,并寻找可以利用的模式。作为一名程序员,至少做出一次好的尝试是在你的工作描述中。
-
已编辑以包含更多信息和更多指向我尝试过的解决方案的链接。我的问题不只是进行组合,而是创建可能的选项,我可以在其中进行安排,例如
[['Bob', 0], ['Tina',0]] -
我注意到你需要双重排列。首先用第一个数组中的每个元素创建第二个数组中每个可能元素的集合,然后他们找到所有这些排列的组合
标签: javascript arrays