Lodash:当我有嵌套数组属性时过滤?

Lodash:当我有嵌套数组属性时过滤?,lodash,Lodash,考虑下面的例子。我用的是Lodash "home":[ { "data":{ "interests":["sports", "travel", "boxing"], "city":["x", "y", "z"], "name":"test1" }, "count":["1", "2"], "country":"CA" }, { "data":{ "

考虑下面的例子。我用的是Lodash

"home":[
   {
      "data":{
         "interests":["sports", "travel", "boxing"],
         "city":["x", "y", "z"],
         "name":"test1"
      },
      "count":["1", "2"],
      "country":"CA"
   },
   {
      "data":{
         "interests":["painting", "travel", "dancing"],
         "city":["a", "y", "b"],
         "name":"test2"
      },
      "count":["1","3"],
      "country":"US"
   }
]
如果我将在键值对示例上尝试该函数:

_.find(home, ['data.country', 'US']);  // It is returning me the 2nd object
要求:

我想要data.interests正在“跳舞”的所有对象

尝试:

_.find(home, ['data.interests', 'dancing'])  // It is returning [] 
我还尝试了filter()、where()和map,但无法获得完整的对象


提前感谢。

您可以使用vanilla JS或lodash函数-过滤数组,并为每个项目检查
data.interests
数组是否包含请求的单词

香草的:

const home=[{“数据”:{“兴趣”:[“体育”、“旅游”、“拳击”],“城市”:[“x”、“y”、“z”],“姓名”:“测试1”},“计数”:[“1”、“2”],“国家”:“CA”},{“数据”:{“兴趣”:[“绘画”、“旅游”、“舞蹈”],“城市”:[“a”、“y”、“b”],“姓名”:“测试2”},“计数”:[“1”、“3”,“国家”:“美国”}]
const result=home.filter(o=>o.data.interests.includes('dancing'))
console.log(结果)