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

findMyCampsites函数返回undefined 求代码错误排查

代码错误分析与修正

你的findMyCampsites函数返回undefined且功能不符合要求,核心问题如下:

关键错误点

  • 多余且错误的嵌套循环:campgrounds[i].view是字符串类型,partySize和number是数字类型,这些值没有length属性,内层三个循环根本不会执行。遍历营地数组时,直接访问对象属性即可,完全不需要循环这些单个属性。
  • 条件逻辑完全搞反:需求要求营地可容纳人数大于等于输入的party size,你写的是campgrounds[i].partySize[p] <= size,这会筛选出容纳人数不足的营地,完全不符合要求。
  • 提前return破坏遍历逻辑:你在循环内的判断分支直接return,导致只检查第一个元素就终止函数。而且array.push(...)返回的是数组的新长度,不是数组本身,额外拼接逗号也不符合返回格式。另外,只要第一个元素不满足条件就返回提示字符串,根本没遍历完所有营地。
  • 无匹配时的返回时机错误:应该等遍历完所有营地、确认没有符合条件的结果后,再返回提示字符串,而非中途遇到不匹配元素就返回。

修正后的代码

基础for循环版本

function findMyCampsites(campgrounds, view, partySize) {
  const availableCamps = [];
  // 遍历所有营地
  for (const camp of campgrounds) {
    // 同时校验三个条件:未预订、视图匹配、容纳人数足够
    if (!camp.isReserved && camp.view === view && camp.partySize >= partySize) {
      availableCamps.push(camp.number);
    }
  }
  // 根据结果返回数组或提示文本
  return availableCamps.length > 0 ? availableCamps : 'Sorry, no campsites with that view are available to host your party';
}

更简洁的filter+map版本

function findMyCampsites(campgrounds, view, partySize) {
  // 先筛选符合条件的营地,再提取编号
  const availableCamps = campgrounds
    .filter(camp => !camp.isReserved && camp.view === view && camp.partySize >= partySize)
    .map(camp => camp.number);
  
  return availableCamps.length ? availableCamps : 'Sorry, no campsites with that view are available to host your party';
}

测试验证

用给定的示例数组测试:

let campgrounds = [ 
    { number: 1, view: "ocean", partySize: 8, isReserved: false }, 
    { number: 5, view: "ocean", partySize: 4, isReserved: false }, 
    { number: 12, view: "ocean", partySize: 4, isReserved: true }, 
    { number: 18, view: "forest", partySize: 4, isReserved: false }, 
    { number: 23, view: "forest", partySize: 4, isReserved: true }, 
];

console.log(findMyCampsites(campgrounds, "ocean", 4)); // [1, 5]
console.log(findMyCampsites(campgrounds, "ocean", 8)); // [1]
console.log(findMyCampsites(campgrounds, "forest", 4)); // [18]
console.log(findMyCampsites(campgrounds, "forest", 6)); // 'Sorry, no campsites with that view are available to host your party'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:55:20