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

如何过滤多维数组并保留原有Owner层级结构?

保留Owner结构过滤指定犬种的实现方法

你之前的代码只返回了过滤后的狗数组,没有保留原Owner对象的结构。要实现保留每个Owner对象并替换其dog数组为过滤后的结果,只需在map中返回包含原Owner所有属性+过滤后dog数组的新对象即可:

const filteredOwners = owners.map(owner => ({
  ...owner, // 复制原Owner的所有属性(如姓名、年龄等其他字段)
  dog: owner.dog.filter(dog => dog.typeOfDog !== "poodle") // 替换dog数组为过滤后的结果
}));

说明:

  • 使用扩展运算符...owner可以保留原Owner对象的所有其他属性(如果存在的话),避免丢失结构。
  • owner.dog.filter(...)生成新的数组,仅保留非"poodle"的犬种,替换原对象的dog属性。

可选:移除无剩余犬只的Owner

如果需要过滤掉那些所有狗都是poodle的Owner(即过滤后dog数组为空的对象),可以在map之后再加一层filter:

const filteredOwners = owners
  .map(owner => ({
    ...owner,
    dog: owner.dog.filter(dog => dog.typeOfDog !== "poodle")
  }))
  .filter(owner => owner.dog.length > 0);

这样处理后,结果就完全符合你想要的结构:每个元素都是完整的Owner对象,其dog数组仅包含非poodle的犬种。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:20:52