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

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

沒有重復和固定長度的數組的排列

沒有重復和固定長度的數組的排列

慕田峪7331174 2022-11-11 14:04:25
我無法弄清楚如何生成值的組合。鑒于:const items = ['a', 'b', 'c', 'd', 'e'];應該生成:[    ['a', 'b', 'c'],    ['a', 'b', 'd'],    ['a', 'b', 'e'],    ['a', 'c', 'd'],    ['a', 'c', 'e'],    ['a', 'd', 'e'],    ['b', 'c', 'd'],    ['b', 'c', 'e'],    ['c', 'd', 'e']]它為數組中的所有項目生成一個唯一的組合?;旧希總€項目的數組長度是Math.round(items.length / 2).任何幫助將不勝感激。
查看完整描述

1 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

您可以采取直接的方法并迭代數組并通過尊重所需長度來獲取其余數組的部分。


function perm(array, length) {

    return array.flatMap((v, i) => length > 1

        ? perm(array.slice(i + 1), length - 1).map(w => [v, ...w])

        : [[v]]

    );

}


perm(['a', 'b', 'c', 'd', 'e'], 3).forEach(a => console.log(...a));

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對 回復 2022-11-11
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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