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

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

給定一個值,如100,給定一個數組,從數組中挑選出N個元素,用javascript怎么實現呢

給定一個值,如100,給定一個數組,從數組中挑選出N個元素,用javascript怎么實現呢

米脂 2018-08-09 09:10:18
如數組:var arr = [99.1, 92.2, 60, 50,           49.5, 45.7, 25.1, 20,             17.4, 13, 10, 7, 2.1, 2, 1];找到和為100的數組元素,或者結果最接近100的組合:[60,20,10,7,2,1]
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

    var arr = [99.1, 92.2, 60, 50,

            49.5, 45.7, 25.1, 20,

            17.4, 13, 10, 7, 2.1, 2, 1

        ];

        

    function combinations(array, n) {

    var lists = [],

        M = 1 << array.length;

    for (var i = 1; i < M; ++i) {

        var sublist = array.filter(function(c, k) {

            return i >> k & 1

        });

        if (sublist.reduce(function(p, c) {

                return p + c

            }, 0) === n)

            lists.push(sublist);

    }

    return lists;

}

        

console.log(combinations(arr, 100))

//[[60,20,13,7],[50,20,13,10,7],[49.5,25.1,17.4,7,1],[60,20,10,7,2,1],[49.5,20,17.4,10,2.1,1],[49.5,17.4,13,10,7,2.1,1]]


查看完整回答
反對 回復 2018-09-18
  • 1 回答
  • 0 關注
  • 746 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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