2 回答

TA贡献1873条经验 获得超9个赞
function f(arr) {
var ret = []
function fi(result, i) {
if (i === -1) {
ret.push(result)
} else {
let items = arr[i]
if (!Array.isArray(items)) {
items = [items]
}
items.forEach(item => {
fi([item,...result], i - 1)
});
}
}
fi([], arr.length - 1)
return ret
}
const arr = [[1,2],3,[4,5,6]];
console.log(f(arr))

TA贡献1805条经验 获得超10个赞
function multiply(arr1, arr2) {
let r = []
arr1 = Array.isArray(arr1) ? arr1 : [arr1]
arr2 = Array.isArray(arr2) ? arr2 : [arr2]
arr1.forEach(function(i){
arr2.forEach(function(j){
let item = (Array.isArray(i) ? i : [i]).concat(j)
r.push(item)
})
})
return r
}
const arr = [[1,2],3,[4,5,6]]
let result = arr.reduce((acc, curr) => multiply(acc, curr))
console.log('result', result)
添加回答
举报