亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript 進行組合,C(M,1),m數量是不確定的,應該如何解決?

javascript 進行組合,C(M,1),m數量是不確定的,應該如何解決?

有只小跳蛙 2018-07-22 07:32:46
我看到其他人提到一個問題,還有下邊的答案,感覺非常有興趣,就把題目改編了題目來源及自己的思路題目原本是這樣的,`var wordList = [[{'熱烈'}, {'萬分'}, {'非常'}, ''], [{'歡迎'}, {'感謝'}, {'謝謝'}], [{'您'}, {'親'}, {'老板'}, {'大神'}, ''], [{'光臨'}, {'惠顧'}, {'支持'}], [{'小店'}, {'本店'}, {'火女菜館'}]];`如何把這個全都組合起來呢,相同行的不能組成一個,比如:熱烈 感謝 老板 支持 小店(每行取一個)這是正確的。但是熱烈 萬分 謝謝 大神 支持,這樣是錯誤的每次要提取的數量m,是不一定的,比如m=5,就是熱烈 感謝 老板 支持 小店m=4,就是 熱烈 感謝 老板 支持熱烈 感謝 老板 小店 熱烈 老板 支持 小店 感謝 老板 支持 小店 這樣的,當然還有很多種,都沒有一一列出來,這種計算應該如何達成呢? 組成的應該是這樣的:[{'熱烈'},{'感謝'},{'老板'},{'支持'},{'小店'}]
查看完整描述

2 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊


let wordList = [
    ['熱烈', '萬分', '非常'],
    ['歡迎', '感謝', '謝謝'],
    ['您', '親', '老板', '大神'],
    ['光臨', '惠顧', '支持'],
    ['小店', '本店', '火女菜館']
];

let M = 4;

/** @example cross([[1]], [2,3]) // [[1,2], [1,3]] */
let cross = (a1, a2) => a1.reduce((r, s1) => r.concat(a2.map(s2 => [...s1, s2])), []);
//還可以這么寫
//let cross = (a1, a2) => [].concat(...a1.map(s1 => a2.map(s2 => [...s1, s2])));

let result = wordList.slice(0, M).reduce(cross, [[]]);



查看完整回答
反對 回復 2018-07-22
?
莫回無

TA貢獻1865條經驗 獲得超7個贊


改成這樣該如何做:

let wordList=[
{"name":"熱烈","id":1},{"name":"萬分","id":2},{"name":"非常","id":3},
{"name":"歡迎","id":1},{"name":"感謝","id":2},{"name":"謝謝","id":3},
{"name":"您","id":2},{"name":"親","id":1},{"name":"大神","id"1}
]

id相同的不能組合為一組,共有多少種組合的方式,同樣M是不確定的,從這些組種選擇M個想組合,該如何代碼


查看完整回答
反對 回復 2018-07-22
  • 2 回答
  • 0 關注
  • 359 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號