在JavaScript中打包盒子的最有效方法?

时间:2017-07-21 18:35:25

标签: javascript lodash

所以说你正在运行一个电子商务网站,并且正在编写一个函数来获取一个订单数组并将其打包成盒子。

例如,假设您拥有订单中所有产品的集合:

   [{ product: "c5b3eb47", weight: 1},
    { product: "c5b3eb47", weight: 1},
    { product: "c5b3eb47", weight: 1},
    { product: "c5b3eb47", weight: 1},
    { product: "c5b3eb47", weight: 1},
    { product: "2e5e38b0", weight: 2},
    { product: "2e5e38b0", weight: 2},
    { product: "4939730d", weight: 4}]

我们希望将其装入最小重量5的盒子中。(没有产品重量超过5)。什么是最有效的方法来实现这一目标?

示例输出为

   [
    [{
        product: "c5b3eb47",
        weight: 1
    }, {
        product: "4939730d",
        weight: 4
    }],
    [{
        product: "c5b3eb47",
        weight: 1
    }, {
        product: "c5b3eb47",
        weight: 1
    }, {
        product: "c5b3eb47",
        weight: 1
    }],
    [{
        product: "c5b3eb47",
        weight: 1
    }, {
        product: "2e5e38b0",
        weight: 2
    }, {
        product: "2e5e38b0",
        weight: 2
    }]
   ]

其中三个框创建。到目前为止,我已经尝试过最重的分拣并尝试与最轻的配对。任何帮助我们的指导都会很棒。

1 个答案:

答案 0 :(得分:0)

有一堆包! (现在我知道要搜索什么) 这是一个二维包装工具库。 https://www.npmjs.com/package/bin-packer