shouldWeOrderThisCandy函数编写问题:测试4过3败求排查
问题修复:shouldWeOrderThisCandy函数
原代码的致命问题
你写的代码把inventory数组直接当成单个糖果对象来读取属性了——inventory是包含多个糖果对象的数组,根本没有candy、inStock这些顶层属性,导致匹配逻辑完全失效,大部分测试用例自然失败。
修复后的代码
function shouldWeOrderThisCandy(inventory, candy) { // 从库存数组中找出名称匹配的糖果对象 const targetCandy = inventory.find(item => item.candy === candy); // 找到匹配项则判断库存是否低于周均销量,未找到直接返回false return targetCandy ? targetCandy.inStock < targetCandy.weeklyAverage : false; }
修复逻辑说明
- 使用
Array.find()遍历库存数组,精准定位名称匹配的糖果对象,这是处理数组元素查找的标准方式 - 完全覆盖需求中的所有场景:
- 找到匹配糖果且
inStock < weeklyAverage→ 返回true - 找到匹配糖果但
inStock >= weeklyAverage→ 返回false - 未找到匹配糖果(包括空数组、名称不存在的情况)→ 返回
false
- 找到匹配糖果且
- 所有测试用例均可通过:
- Twizzlers、Sour Patch Kids、Kit Kat这类库存不足的场景会返回
true - Milk Duds、Now and Laters库存充足的场景返回
false - Broccoli Bites不存在、空数组查询的场景也返回
false
- Twizzlers、Sour Patch Kids、Kit Kat这类库存不足的场景会返回
内容的提问来源于stack exchange,提问作者Akeem
相关产品推荐
相关产品推荐

