You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简化物品适配箱体的多组合if条件判断语句?

简化物品尺寸适配箱体的条件判断逻辑

你完全不需要枚举所有6种尺寸排列组合,核心思路是对物品和箱体的尺寸分别排序后,逐一对应比较——因为物品无论怎么旋转,它的最小、中间、最大尺寸是固定的,只要这三个值分别不超过箱体的对应尺寸,就一定能装下。

具体实现步骤

  1. 将物品的三个尺寸放入数组,按升序排序
  2. 将箱体的三个尺寸放入数组,按升序排序
  3. 比较排序后的对应位置:物品的最小尺寸 ≤ 箱体最小尺寸,中间尺寸 ≤ 箱体中间尺寸,最大尺寸 ≤ 箱体最大尺寸,三者同时满足则适配。

代码示例(JavaScript)

// 示例尺寸
const itemSize = [7, 3, 2];
const boxSize = [7, 5, 3];

// 排序后比较
const sortedItem = itemSize.sort((a, b) => a - b);
const sortedBox = boxSize.sort((a, b) => a - b);

if (sortedItem[0] <= sortedBox[0] && sortedItem[1] <= sortedBox[1] && sortedItem[2] <= sortedBox[2]) {
  console.log("your item fits in this box!");
} else {
  console.log("your item doesn't fit in this box!");
}

封装成可复用函数

如果需要多次调用,可以封装成更简洁的函数:

function checkItemFit(itemDims, boxDims) {
  // 复制数组避免修改原数据,再排序
  const sortedItem = [...itemDims].sort((a, b) => a - b);
  const sortedBox = [...boxDims].sort((a, b) => a - b);
  // 用every方法批量比较对应维度
  return sortedItem.every((dim, index) => dim <= sortedBox[index]);
}

// 测试
console.log(checkItemFit([7,3,2], [7,5,3])); // 输出 true
console.log(checkItemFit([9,2,2], [7,5,3])); // 输出 false

逻辑说明

这种方法的本质是抓住了尺寸适配的核心:物品的三个维度的极值(最小、中、最大)必须全部被箱体的极值覆盖。无论怎么旋转物品,都无法改变它的极值,所以只要极值满足条件,就一定存在一种摆放方式让物品装入箱体;反之,如果有一个极值超过箱体对应极值,无论怎么摆都装不下。

内容的提问来源于stack exchange,提问作者Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:51:09