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

JS对象练习:修复feedPet函数问题求助

修复feedPet函数问题

问题分析

原函数存在两个核心问题:

  • foods.push(food)的返回值是数组的新长度,而非添加后的食物列表,这会导致输出中出现数字而非食物名称
  • 示例注释存在笔误(如把Hydra/Hippogriff误写为Hyrda),但函数逻辑本身的问题才是重点

修复后的代码

function feedPet(name) {
  const foods = [];
  return (food) => {
    foods.push(food);
    return `Fed ${name} ${foods.join(', ')}.`;
  }
}

代码说明

  1. 先执行foods.push(food)将食物存入数组,此处不需要使用push的返回值(因为它返回的是数组长度)
  2. 使用模板字符串拼接结果,通过foods.join(', ')自动处理食物列表的格式:单个食物时直接显示,多个食物时用逗号加空格分隔
  3. 原示例中的注释笔误已修正,运行时会正确显示传入的宠物名称

测试验证

const feedHydra = feedPet('Hydra');

console.log(feedHydra('bones')); // Fed Hydra bones.
console.log(feedHydra('Hercules')); // Fed Hydra bones, Hercules.

const feedHippogriff = feedPet('Hippogriff');

console.log(feedHippogriff('worms')); // Fed Hippogriff worms.
console.log(feedHippogriff('crickets')); // Fed Hippogriff worms, crickets.
console.log(feedHippogriff('chicken')); // Fed Hippogriff worms, crickets, chicken.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:01:18