题目
求出一个二维数组[[A, B], [a, b], [1, 2]]
所有排列组合
输入[[A, B], [a, b], [1, 2]]
输出[Aa1, Aa2, Ab1, Ab2, Ba1, Ba2, Bb1, Bb2]
实现
编程,首先要分析规律,有了规律之后要做的就是用代码将这种规律实现就好了!!!!!
分析一下,将计算过程拆解为两两相乘的过程
- 首先计算
[A, B] * [a, b]
,得到结果[Aa, Ab, Ba, Bb]
- 然后计算
[Aa, Ab, Ba, Bb] * [1, 1]
,得到最终结果[Aa1, Aa2, Ab1, Ab2, Ba1, Ba2, Bb1, Bb2]
- 如果还有后续数组,重复上述过程
关键点就是将上面的乘法用代码表示
用递归实现,关键的计算公式是:
计算(已计算的结果 * 当前结果)
已计算的结果
就是通过递归返回值,而计算
单独写成一个方法,通过双层循环拼接数组成员,所以递归的架子是:
const findAll = arr => {
if (arr.length === 1) {
return arr[0]
}
const temp