抽象问题:你面前有n个筐,每一个筐都放着不一样数量的不一样物品,让你在每一个筐中拿一个物品,请问一共有多少可能,分别是什么?数组
function combine(twoDimensionalArr) { //二维数组中每一个数组的最大长度 var maxLengthArr = []; //遍历过程当中每一个数组的下标 var tempIndexArr = []; for (var i = 0; i < twoDimensionalArr.length; i++) { maxLengthArr.push(twoDimensionalArr[i].length); tempIndexArr.push(0); } //组合一共有多少种 var count = 1; for (var i = 0; i < maxLengthArr.length; i++) { count = count * maxLengthArr[i]; } var combineValues = []; var combineItem; for (var i = 0; i < count; i++) { if (i !== 0) { var changeIndex = tempIndexArr.length - 1; var sholdAdd = false; while (!sholdAdd) { tempIndexArr[changeIndex] += 1; if (tempIndexArr[changeIndex] >= maxLengthArr[changeIndex]) { tempIndexArr[changeIndex--] = 0; sholdAdd = false; } else { sholdAdd = true } } } combineItem = []; for (var j = 0; j < tempIndexArr.length; j++) { combineItem.push(twoDimensionalArr[j][tempIndexArr[j]]); } combineValues.push(combineItem); } console.log(combineValues); return combineValues; } combine([[1,2,3],["a","b","c","d"],["A","B"]]);`