gpt4 book ai didi

javascript - 将两个数组合并为所有可能组合的数组的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:30:39 24 4
gpt4 key购买 nike

JavaScript 中给出的示例:

假设我们有两个数组 [0,0,0] 和 [1,1,1]。生成这两个数组可以组合的所有可能方式的算法是什么。示例:

mergeEveryWayPossible([0,0,0],[1,1,1])
// [ [0,0,0],[1,0,0], [0,1,0], [0,0,1], [1,1,0], [0,1,1], [1,0,1], [1,1,1] ]

将数组合并成一个包含所有可能组合的数组。这与寻找笛卡尔积不同。

我也不确定这种组合叫什么。如果算法或技术有名称,请分享。

最佳答案

您可以将值转换成这种格式的数组

[
[0, 1],
[0, 1],
[0, 1]
]

然后通过迭代外部和内部数组构建一个新的结果集。

var data = [[0, 0, 0], [1, 1, 1]],
values = data.reduce((r, a, i) => (a.forEach((b, j) => (r[j] = r[j] || [])[i] = b), r), []),
result = values.reduce((a, b) => a.reduce((r, v) => r.concat(b.map(w => [].concat(v, w))), []));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 将两个数组合并为所有可能组合的数组的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46553575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com