为了账号安全,请及时绑定邮箱和手机立即绑定

关于循环规格组合可能性思路的问题

关于循环规格组合可能性思路的问题

慕姐4208626 2019-03-15 15:15:51
尺寸有1个参数孔数和孔距 有3个参数J值有 2个参数ET值 有1个参数中心孔有 2个参数一共会有12种组合的可能 求思路 谢谢啦
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

尝试以下代码


function cross(inputs){

    let result = inputs[0].map(item => [item]);


    for(let cross_item of inputs.slice(1)){

        result = cross_item.reduce((acc,target)=>(result.forEach(result_item=>acc.push([...result_item,target])),acc),[]);

    }

    return result;

}


console.log(cross([['n','o','t'], ['i', 'n'], ['a'],['(',')']]));

----------------其实可以再短一点------------------


function cross(inputs){

    return inputs.reduce((result,cross_item)=> cross_item.reduce((acc, target) => (result.forEach(result_item => acc.push([...result_item, target])), acc), []))

}


查看完整回答
反对 回复 2019-04-02
?
largeQ

TA贡献2039条经验 获得超7个赞

放进二维数组里 递归组合


let arr=[

    [11,12],

    [21,22,23],

    [31],

    [41,42]

]

f(arr,0,[])

function f(arr,k,temp){

    if(k==arr.length){

        console.log(JSON.stringify(temp))

        return

    }

    for(let i=0;i<arr[k].length;i++){

        temp[k]=arr[k][i]

        f(arr,k+1,temp)

    }

}


查看完整回答
反对 回复 2019-04-02
?
慕斯王

TA贡献1864条经验 获得超2个赞

笛卡尔积 了解一下

生成给予属性的所有可能组合方式


查看完整回答
反对 回复 2019-04-02
  • 3 回答
  • 0 关注
  • 274 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信