求二维数组全排列为什么一直不能返回正确结果呢呢?
题目描述
输入[[A, B], [a, b], [1, 2]]输出[Aa1, Aa2, Ab1, Ab2, Ba1, Ba2, Bb1, Bb2]
相关代码
const arr = [
["1", "2", "3"],
["a", "b", "c"],
["A", "B", "C"],
];
function merge(a, b) {
const result = [];
b.forEach((e) => {
a.forEach((el) => {
result.push(e + el);
});
});
return result;
}
function permutation(arr) {
if (arr.length <= 1) {
const result = arr.pop()
console.log(result);
// return result;
return '123'
} else {
const lastMerge = merge(arr.pop(), arr.pop());
permutation([...arr, lastMerge]);
}
}
const result = permutation(arr);
console.log('result:',result)
执行结果如上,为什么return 都是 undefined呢,很困惑,求高人指教,亦可优化该程式,🙇🙇🙇
回复
1个回答

test
2024-07-01
function permutation(arr) {
if (arr.length <= 1) {
return arr.pop();
} else {
const lastMerge = merge(arr.pop(), arr.pop());
return permutation([...arr, lastMerge]);
}
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容