js n个数组,每个数组内有随机数量的字符, 从每个数组中取一项 将取出的所有项拼接成一个字符,有数组长度乘积个组合,将这些组合放到一个新数组中去,写个函数方法解决这个问题
时间: 2024-10-12 19:11:30 浏览: 57
为了实现这个功能,你可以创建一个名为`generateCombinations`的函数,该函数接受一个二维数组作为输入,然后计算所有可能的组合并将其存储在一个新数组中。这里我们假设数组内的每个子数组都是非空的,并且所有子数组都具有相同的元素数量。下面是简单的JavaScript代码示例:
```javascript
function generateCombinations(arrays) {
const combinations = [];
function combine(current, index) {
if (index === arrays.length) {
combinations.push(current.join('')); // 拼接当前组合并添加到结果
return;
}
// 对于每个子数组的当前元素,递归地尝试添加到下一个位置
for (let i = 0; i <= arrays[index].length; i++) {
combine([...current, arrays[index][i]], index + 1); // 保留当前组合并增加下一层
}
}
// 开始递归,从第一个数组开始
combine([], 0);
return combinations;
}
// 示例
let arr1 = ['a', 'b', 'c'];
let arr2 = ['d', 'e'];
let arr3 = ['f', 'g'];
let arrays = [arr1, arr2, arr3];
let result = generateCombinations(arrays);
console.log(result); // 输出: 所有可能的三个数组元素的组合,例如 ['adf', 'adg', 'ae', 'af', 'ag', 'bef', 'beg', ...]
```
这个函数首先定义了一个空数组`combinations`用于保存结果。`combine`内部函数采用深度优先搜索的方式,逐层遍历所有可能的子数组元素组合。
阅读全文