gpt4 book ai didi

javascript - n* 数组中的替代项合并

转载 作者:行者123 更新时间:2023-12-03 02:29:56 25 4
gpt4 key购买 nike

我有一个大数组,其中包含其他几个数组。例如

let allLines = [['a', 'b'], ['c', 'd', 'e'], ['f', 'g', 'h']];

我需要一个函数来合并数组项并将其可能的组合附加到文本区域中。他们需要像这样合并:

[a, c, f]
[a, c, g]
[a, c, h]
[a, d, f]
[a, d, g]
[a, d, h]
[a, c, f]
...

所有可能的组合应在循环中生成并将其附加到文本区域。在此示例中可能有 18 种组合。我尝试过这样的事情:

let lengths = allLines.map(function(a){return a.length;});
let biggest = Math.max.apply(null, lengths);
a = [];

for (let i = 0; i < allLines.length; i++) {
for (let j = 0; j < biggest; j++) {
if(allLines[i][j] == undefined) {
break;
}
a[i] = allLines[i][j];
}
// console.log(a);
}

有什么想法吗?

最佳答案

您可以构建笛卡尔积。

const
values = [['a', 'b'], ['c', 'd', 'e'], ['f', 'g', 'h']],
result = values.reduce((a, b) => a.reduce((r, v) => r.concat(b.map(w => [].concat(v, w))), []));

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

关于javascript - n* 数组中的替代项合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58894862/

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