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

如何实现cookieLoversOnly函数:用.filter过滤含favoriteCookie键的对象

实现cookieLoversOnly函数:筛选含favoriteCookie键的对象

嘿,这事儿超简单!咱们直接用数组的.filter方法配合属性检查就能搞定。下面给你两种实用的实现方式:

方法1:用hasOwnProperty检查自身属性

这个方法会严格校验对象自身是否拥有favoriteCookie键(不会考虑原型链上继承的属性),适合需要严谨校验的场景:

function cookieLoversOnly(peopleArray) {
  // 过滤出拥有favoriteCookie自身属性的对象
  return peopleArray.filter(person => person.hasOwnProperty('favoriteCookie'));
}

方法2:用in操作符检查属性(含原型链)

如果你的场景允许包含原型链上的favoriteCookie属性,用in操作符会更简洁:

function cookieLoversOnly(peopleArray) {
  // 过滤出存在favoriteCookie属性的对象(包括原型链继承的)
  return peopleArray.filter(person => 'favoriteCookie' in person);
}

实际例子演示效果

假设你有这样的输入数组:

const folks = [
  { name: 'Luna', favoriteCookie: 'Snickerdoodle' },
  { name: 'Jake' },
  { name: 'Mia', favoriteCookie: 'Peanut Butter' },
  { name: 'Leo', hobby: 'Hiking' }
];

调用cookieLoversOnly(folks)后,会得到结果:

[
  { name: 'Luna', favoriteCookie: 'Snickerdoodle' },
  { name: 'Mia', favoriteCookie: 'Peanut Butter' }
]

两种方法都能满足你的需求,选哪种就看你要不要考虑原型链的属性啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:04:48