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

使用点/方括号表示法获取宠物列表失败,求实现宠物名称提取函数

解决方法:合并所有主人的宠物列表

你直接用people.pets或people['pets']取不到宠物列表,核心原因是people是数组类型,不是单个主人对象——你得遍历数组里的每一个对象,才能拿到对应每个主人的pets数组,再把这些数组合并成一维数组。

下面是几种实用的实现方式:

1. 用flatMap(最简洁)

flatMap会先映射每个元素到pets数组,再自动拍平嵌套结构:

function getAllPets(people) {
  return people.flatMap(person => person.pets);
}

2. 用map + flat(兼容性稍好)

如果你的运行环境不支持flatMap,可以拆分两步:

function getAllPets(people) {
  return people.map(person => person.pets).flat();
}

3. 手动遍历收集(最基础)

用循环手动收集所有宠物,适合理解底层逻辑:

function getAllPets(people) {
  const allPets = [];
  for (const person of people) {
    allPets.push(...person.pets);
  }
  return allPets;
}

测试示例

输入:

const people = [
  {
    name: 'Malcolm',
    pets: ['Bear', 'Minu'],
  },
  {
    name: 'Caroline',
    pets: ['Basil', 'Hamish'],
  },
];

调用getAllPets(people)会返回:['Bear', 'Minu', 'Basil', 'Hamish']

若传入空数组getAllPets([]),则返回空数组[],符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:25:18