如何使用Lodash过滤包含嵌套数组属性的对象集合?
解决Lodash查找包含指定兴趣的对象问题
嘿,我来帮你搞定这个问题!你之前的尝试没成功主要是两个原因:一是用_.find的话它只会返回第一个匹配的对象,而且你用['data.interests', 'dancing']这种键值对匹配的方式,是在严格判断data.interests这个数组是否完全等于'dancing'(一个字符串),这显然不成立;二是你用filter()的时候可能没写对判断条件。
正确的做法是结合_.filter和_.includes来实现:
// 获取所有data.interests包含'dancing'的完整对象 const matchingObjects = _.filter(home, (item) => { return _.includes(item.data.interests, 'dancing'); });
代码解释:
_.filter会遍历整个home数组,把所有符合条件的对象收集起来返回。- 回调函数里用
_.includes检查当前对象的data.interests数组是否包含'dancing'这个元素,只要包含就会被保留到结果里。
用这个方法跑你的示例数据,结果会是包含第二个对象的数组,完全符合你的需求~
内容的提问来源于stack exchange,提问作者student
相关产品推荐
相关产品推荐

