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



假设您正在运行一个电子商务网站,并且正在编写一个函数来获取订单数组并将其打包到盒子中。

例如,假设您收集了订单的所有产品:

[{ 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
}]
]

其中创建了三个框。到目前为止,我已经尝试先对最重的进行分类,然后尝试与最轻的配对。我们的指导的任何帮助都将是惊人的。

有一堆包!(现在我知道要搜索什么了( 这是一个 1D 垃圾箱打包机库。https://www.npmjs.com/package/bin-packer

最新更新