gpt4 book ai didi

javascript - 从多个嵌套数组中提取值组合的问题

转载 作者:行者123 更新时间:2023-12-02 06:27:30 24 4
gpt4 key购买 nike

尝试遍历多个嵌套数组以获取新数组中可能值的每一个组合。

例子:

[
['a1', 'a2'],
['b1', 'b2'],
['c1', 'c2']
]

输出:

[
['a1'],
['a2'],
['b1'],
['b2'],
['c1'],
['c2'],
['a1', 'b1'],
['a1', 'b2'],
['a1', 'c1'],
['a1', 'c2'],
['a2', 'b1'],
['a2', 'b2'],
['a2', 'c1'],
['a2', 'c2'],
['b1', 'c1'],
['b1', 'c2'],
['b2', 'c1'],
['b2', 'c2']
]

知道如何实现这一点,也许我首先需要拆分数组?

最佳答案

您可以通过移交下一个索引并收集临时数组来采用递归方法。

function getCombinations(array, max) {

function iter(i, j, temp) {
if (array[i] && j >= array[i].length) {
j = 0;
i++;
}
if (!array[i] || temp.length === max) return;
result.push(temp.concat(array[i][j]));
iter(i + 1, 0, temp.concat(array[i][j]));
iter(i, j + 1, temp);
}

var result = [];
iter(0, 0, []);
return result;
}

var array = [['a1', 'a2'], ['b1', 'b2'], ['c1', 'c2']],
result = getCombinations(array, 2);

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

关于javascript - 从多个嵌套数组中提取值组合的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53319321/

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