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

修复cutestCat函数:返回可爱度最高的猫咪对象

修复cutestCat函数以返回最高可爱度的猫咪对象

原代码存在几个关键问题,导致无法返回预期的猫咪对象:

  • 初始cutest未赋值,第一次比较时cat > cutest会因cutest为undefined出现逻辑错误
  • 比较逻辑错误:直接用猫咪对象和cutest(数值/undefined)比较,而非两者的cuteness属性
  • 更新cutest时只存储了可爱度数值,而非整个猫咪对象,最终返回的是数字而非对象

修复后的代码如下:

function cutestCat(cats) {
  // 初始化为第一个猫咪对象,避免undefined的比较问题
  let cutest = cats[0];
  let i = 1; // 从第二个元素开始遍历
  debugger
  while (i < cats.length) {
    const cat = cats[i];
    // 比较当前猫咪的cuteness和cutest的cuteness
    if (cat.cuteness > cutest.cuteness) {
      cutest = cat; // 存储整个猫咪对象
    }
    i++;
  }

  return cutest;
}

const cats = [
  { name: 'Fluffy', cuteness: 9 },
  { name: 'Princess', cuteness: 6 },
  { name: 'Tiger', cuteness: 7 },
  { name: 'Indie', cuteness: 5 },
]

console.log(cutestCat(cats)); // { name: 'Fluffy', cuteness: 9 }

关键修复说明:

  1. 初始化cutest:直接将cutest初始化为数组的第一个猫咪对象,避免和undefined比较的问题,同时确保初始值是有效的猫咪对象
  2. 调整遍历起始索引:因已初始化第一个元素,从索引1开始遍历即可,减少一次不必要的比较
  3. 修正比较逻辑:明确比较两个猫咪对象的cuteness属性值,而非对象本身
  4. 更新cutest的赋值:找到更可爱的猫咪时,将整个对象赋值给cutest,确保最终返回完整的猫咪对象

如果需要兼容空数组的边界情况,可以添加判断:

function cutestCat(cats) {
  if (!cats.length) return null; // 处理空数组场景
  let cutest = cats[0];
  let i = 1;
  debugger
  while (i < cats.length) {
    const cat = cats[i];
    if (cat.cuteness > cutest.cuteness) {
      cutest = cat;
    }
    i++;
  }
  return cutest;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:16:20