1 var results = [], result = []; 2 3 function doExchange(arr, index) { 4 5 for (var i = 0; i < arr[index].length; i++) { 6 // 填充第一项 7 result[index] = arr[index][i]; 8 // 判断条件 9 if (index != arr.length - 1) { 10 // 递归 11 doExchange(arr, index + 1) 12 } else { 13 // 结束的时候 14 results.push(result.join('-')) 15 } 16 } 17 } 18 19 var arr = [[1, 2], [3, 4]]; 20 doExchange(arr, 0) // 21 console.log(results) // output: 1-3,1-4,2-3,2-4
交换递归的思想,多写几遍就知道,书读百本其义自见,不明白敲上100遍就懂了