SOURCE

function combine(sourceArr){
    const result = [];

    function recursiveCombine(current,index){
        if(index === sourceArr.length){
            result.push(current.join('-'))
            return
        }
        for(let item of sourceArr[index]){
            recursiveCombine([...current,item], index+1)
        }
    }
    recursiveCombine([],0);
    return result;
}

function combine2(sourceArr){
    return sourceArr.reduce((acc,curr)=>{
        const res = [];
        for(let item1 of acc){
            for (let item2 of curr){
                res.push(`${item1}-${item2}`)
            }
        }
        return res
    })
}
const sourceArr = [
    ['戴尔', '苹果', '联想'],
    ['笔记本', '平板电脑', 'PC机', '上网本'],
    ['黑色', '银色', '白色'],
]

console.log(combine2(sourceArr))
console 命令行工具 X clear

                    
>
console